使用 libgit2 / git2go 获取补丁的完整索引

Getting full indexes of a patch using libgit2 / git2go

git2go 的 git.Patch 或 libgit2 的 git_patch returns 以下格式的字符串值:

"diff": "diff --git a/test b/test
         index 9daeafb..dced80a 100644  
         --- a/test 
         +++ b/test 
         @@ -1 +1,3 @@  
         test
         +  
         +test"

请注意 index 9daeafb..dced80a 100644 不是完整索引。无论如何使用 libgit2 / git2go 到 return 完整索引?即 运行 git diff --full-index?

等价

所以我设法得到了一些外部帮助。如果有人遇到同样的问题,可以使用以下方式返回:

git_diff_options 在 libgit2 中并将 id_abbrev 设置为 40。 https://libgit2.github.com/libgit2/#HEAD/type/git_diff_options

在 git2go 中

DiffOptions 并将 IdAbbrev 设置为 40。 https://godoc.org/github.com/libgit2/git2go#DiffOptions