Grit commit_diff показывает обратный diff
Я пытаюсь сделать очень простую вещь: читать различия из репозитория git через рубиновый камень Grit. Я создаю файл и добавляю строку "Это я меняю первый файл". Теперь я делаю это, чтобы получить diff:
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?
Есть какие-нибудь подсказки?
1 ответ
Решение
Позвольте мне ответить на этот вопрос. Фиксация отображается в правильной форме, если вы выполните следующие действия:
r = Grit::Repo.new("myrepo")
c = r.commits.first
d = c.diffs.first
puts d.first.diff
Не уверен, какая разница будет между Commit.diff и Repo.commit_diff.