Git diff отличается от diff-дерева. Как сделать diff-дерево в jgit? - PullRequest
0 голосов
/ 15 января 2019

Я использую JGit для оценки затронутых файлов между фиксацией идентификаторов. Код, который я настроил, соответствует кулинарной книге jgit.

https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/porcelain/DiffFilesInCommit.java

Я в основном ищу интересующий меня идентификатор фиксации и тот, что был непосредственно перед этим, используя git log. Затем я вставляю их в пример кода.

Проблема в том, что он возвращает множество файлов, которые не были затронуты или добавлены как часть этого коммита, которых должно быть только 2.

Если я запускаю git diff HASH1 HASH2, я получаю тот же результат с тоннами файлов, которые не были затронуты.

И наоборот, при запуске git diff-tree -r HASH1 я получаю ровно 2 файла, которые меня интересуют.

Я что-то неправильно понимаю? Чем отличаются git diff и diff-tree? Как мне повторить поведение git diff-tree с помощью jgit?

1 Ответ

0 голосов
/ 15 января 2019

Хорошо, я только что ответил.

Вместо того, чтобы искать предыдущий идентификатор фиксации из истории, предыдущий идентификатор фиксации должен быть тем, который меня интересует, с суффиксом ~ 1.

git diff HASH1 HASH1~1
...