0

我正在尝试做一件非常简单的事情:通过 ruby​​ gem Grit 从 git repo 中读取差异。我正在创建一个文件并添加“这是我更改第一个文件”这一行。现在我这样做是为了得到差异:

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 会反向显示?我知道如果我反转提交 shas,git 会反转差异,但这是一个仅提供提交差异的 Grit 库调用?

有什么线索吗?

4

1 回答 1

0

让我来回答这个问题。如果您这样做,则提交以正确的形式显示:

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

不确定 Commit.diff 和 Repo.commit_diff 之间有什么区别。

于 2012-03-23T14:57:36.637 回答