Grit commit_diff показывает обратную разницу

Я пытаюсь сделать очень простую вещь: прочитать 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 коммита?

Любые подсказки?


person Ronze    schedule 23.03.2012    source источник


Ответы (1)


Позвольте мне ответить на этот вопрос. Коммит отображается в правильной форме, если вы сделаете это вместо этого:

r = Grit::Repo.new("myrepo")
c = r.commits.first
d = c.diffs.first
puts d.first.diff

Не уверен, в чем разница между Commit.diff и Repo.commit_diff.

person Ronze    schedule 23.03.2012