簡體   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