Я пытаюсь сделать очень простую вещь: прочитать diff из репозитория git через ruby gem Grit. Я создаю файл и добавляю строку «Это я меняю первый файл». Теперь я делаю это, чтобы получить разницу:
r = Grit::Repo.new("myrepo")
c = r.commits.first
d = r.commit_diff(c.id).first
puts d.first.diff
Результат этого:
--- a/First-File.asciidoc
+++ b/First-File.asciidoc
@@ -1,2 +1 @@
-This is me changing the first file
Видите тот минус перед добавленной строкой? Почему commit_diff отображается в обратном порядке? Я знаю, что git меняет diff, если я отменяю shas коммита, но это вызов библиотеки Grit, который дает только diff коммита?
Любые подсказки?