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