Skip to content

Cltsu/gitMergeScenario

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Usage

client中的output是conflict文件和conflict tuple输出的路径,gitPath是git仓库下载和存放的路径,可以自行修改。

需要进行分析的repo可以按照addSimpleRepo中的格式手动设置。即(项目名,远程URL),设置好之后直接运行client的main方法。

jgit的clone指令由于国内的网络问题,可能会出错,需要先手动下载到本地。

Function

收集conflict文件

遍历git历史,收集conflict文件,输出到output/conflictFiles中,以commitId\filepaht\filename.java\conflict files的格式存储

收集conflict tuple

遍历上一个步骤收集到的flies,从conflict marks中抽取出conflict tuple,以projectname.json的格式存储到output/mergeTuples中

对conflict tuple进行统计

统计结果输出到标准输出中,如:

image

输入

  • 项目根目录下 list.txt 以逗号分隔,以项目名称和链接表示需要分析的仓库信息;
# 示例
junit4,tmpurl
spring-boot,tmp
  • 项目根目录下 repos 目录存放实际仓库;
repos
├── junit4
└── spring-boot

输出

  • 项目根目录下 output 记录数据集收集结果;
output
├── conflictFiles           # 收集的包括冲突的文件(conflict.java 包含冲突块)
│   ├── junit4
│   └── spring-boot
├── filteredTuples          # 经过过滤的 merge tuples
│   ├── lackOfResolution    # 缺少resolution
│   ├── mixLine             # 行混合
│   └── outOfVocabulary     # 有新添加语句
└── mergeTuples             # 所有merge tuples
    ├── junit4.json
    └── spring-boot.json

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages