在git2go(libgit2)中查找包含指定blob对象的提交
给定一个blob对象,如何找到包含该对象的(第一个)提交 我认为一个解决方案是从分支的顶端开始revwalk,沿着图走下去,检查每个提交的树,并使用类似于在git2go(libgit2)中查找包含指定blob对象的提交,git,go,libgit2,Git,Go,Libgit2,给定一个blob对象,如何找到包含该对象的(第一个)提交 我认为一个解决方案是从分支的顶端开始revwalk,沿着图走下去,检查每个提交的树,并使用类似于git\u tree\u entry\u byid的东西查看它是否包含您的对象。这将发现可以从特定分支访问提交,但在我的情况下,这是一个解决方案 有更好的方法吗?如果要检查某个对象是否包含在特定的提交中,唯一的方法是沿着对象图向下走,看看它是否存在 但是,有一种方法可以重复使用其中的一些搜索。如果您区分一对提交,并且您知道所讨论的对象包含(或不
git\u tree\u entry\u byid
的东西查看它是否包含您的对象。这将发现可以从特定分支访问提交,但在我的情况下,这是一个解决方案
有更好的方法吗?如果要检查某个对象是否包含在特定的提交中,唯一的方法是沿着对象图向下走,看看它是否存在 但是,有一种方法可以重复使用其中的一些搜索。如果您区分一对提交,并且您知道所讨论的对象包含(或不包含)在其中一个提交中,那么您可以查看该差异,查看提交树中该blob的出现/消失情况,这将避免走下相同的树
git支持可达性位图,这使得它非常快速,但libgit2不支持读取它们。如果要检查某个对象是否包含在某个特定的提交中,唯一的方法是沿着对象图查看它是否存在 但是,有一种方法可以重复使用其中的一些搜索。如果您区分一对提交,并且您知道所讨论的对象包含(或不包含)在其中一个提交中,那么您可以查看该差异,查看提交树中该blob的出现/消失情况,这将避免走下相同的树
git支持可达性位图,这使其速度相当快,但libgit2不支持读取它们。这可能与“是”几乎完全相同,但解决方案使用的是git cli而不是libgit或git2go,这与问题中的想法基本相同。这可能与问题中的想法完全相同,但解决方案使用的是git cli,而不是libgit或git2go,这与问题中的想法基本相同。