繁体   English   中英

由于在jGit中进行了某些提交,如何获取所有更改的文件?

[英]How to get all changed files since some commit in jGit?

TreeWalk允许在单个提交或整个存储库中获取所有更改,并且检查每个提交的更改文件(由RevWalk进行)的工作确实很慢,大约需要2分钟。 有什么方法可以浏览更改的文件并检查上次更改的提交? 还是其他更快的解决方案? 这是我的从提交获取更改文件的代码:

TreeWalk treeWalk = prepareTreeWalk(commit, git.getRepository());
List<String> files = new ArrayList<>();
while (treeWalk.next()) {
  if (!hasSimilar(treeWalk)) {
    files.add(treeWalk.getPathString());
  }
}

和选择提交(因为有些特殊):

return Lists.reverse(StreamSupport.stream(
  git.log()
  .add(git.getRepository().resolve(branch.getName()))
  .call()
  .spliterator(), false)
    .filter(since(sinceCommit::equals))
    .collect(Collectors.toList()));

我知道下面的命令行,它将在ms内打印输出

git format-patch初始提交--stdout> output.patch

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM