Как получить все измененные файлы, так как некоторые фиксируют в jGit? - PullRequest
0 голосов
/ 25 апреля 2019

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()));

1 Ответ

0 голосов
/ 25 апреля 2019

Я знаю командную строку ниже, она выведет вывод в течение мс

git format-patch initial-commit --stdout> output.patch

...