【发布时间】:2021-03-31 12:39:37
【问题描述】:
我有以下代码
commitIter, err := r.Log(&git.LogOptions{From: commit.Hash})
CheckIfError(err)
err = commitIter.ForEach(func(c *object.Commit) error {
parent, err := c.Parent(0)
if err != nil {
return nil
}
patch, err := c.Patch(parent)
CheckIfError(err)
fmt.Println(patch)
return nil
})
它遍历所有提交并使用对父级的引用为每个提交生成补丁。但是第一次提交没有父级,然后我无法生成补丁。是否有任何解决方法,例如传递空提交?
【问题讨论】:
-
我没有接听,但我会尝试致电
c.Patch(commit.GetCommit(plumbing.ZeroHash)) -
object.GetCommit需要两个参数,第一个是storer.EncodedObjectStorer。我应该通过什么? -
go-git中的示例表明这是“存储库”。我的意思是,某个“打开”存储库的调用返回的对象。 -
@kostix 我无法解决这个问题 :( 我创建了new issue