JGit:使用FollowFilter进行重命名/复制检测
因此,我试图做的是检测源代码文件上的重命名/复制活动,因为它已添加到存储库中。我使用以下代码-JGit:使用FollowFilter进行重命名/复制检测,git,jgit,Git,Jgit,因此,我试图做的是检测源代码文件上的重命名/复制活动,因为它已添加到存储库中。我使用以下代码- /** * *@param path用于检索完整历史记录的源代码文件 *@param start为“path”进行的最新提交,以标记为start(也使用HEAD进行测试) *@返回 */ private RevCommitList getList(字符串路径,RevCommit开始)引发异常{ Config Config=new Config(git.getRepository().getConfi
/**
*
*@param path用于检索完整历史记录的源代码文件
*@param start为“path”进行的最新提交,以标记为start(也使用HEAD进行测试)
*@返回
*/
private RevCommitList getList(字符串路径,RevCommit开始)引发异常{
Config Config=new Config(git.getRepository().getConfig());
config.setString(“diff”,null,“重命名”,“副本”);
config.setInt(“diff”,null,“renameLimit”,Integer.MAX_值);
DiffConfig DiffConfig=config.get(DiffConfig.KEY);
final RevWalk RevWalk=new RevWalk(git.getRepository());
//revWalk.reset();
setTreeFilter(FollowFilter.create(path,diffConfig));
markStart(revWalk.parseCommit(start));
最终RevCommitList=新RevCommitList();
资料来源(revWalk);
list.fillTo(整数.MAX_值);
退货清单;
}
此代码有两个问题-
git log
命令时-
git log --follow --name-status -- build/src/main/resources/modules/org/jboss/as/clustering/common/main/module.xml
(顺便说一句,Java代码为我们从SVN迁移到GIT的存储库提供了正确的结果。)通过这个链接,JGit的拷贝检测中似乎有一个bug-