【发布时间】:2013-06-04 01:23:32
【问题描述】:
我从事的项目(由于本问题范围之外的原因)在两个 git 存储库之间分离。它是一个 Web 项目,有一个公共库层(存储在存储库 A)和一个特定的项目层(存储在存储库 B)。
是否有一种有效的工作方法可以使用git-bisect 确定哪个提交引入了特定错误,因为它可能位于任一存储库中?我已经尝试过诸如在 B 上执行 git-bisect 时保持 A 中的提交不变等,但交互过于复杂,因为 B 中的更改通常依赖于 A,反之亦然。 (这些更改与我正在搜索的错误无关,但会阻止网站加载,因此我进行了有效的测试)。
有没有一种方法可以链接两个git-bisects,以便一个存储库上的git bisect good 或bad 检查另一个存储库上最接近时间的提交?或者暂时合并它们以某种方式测试它们?
如果有一种方法可以缩小搜索范围,那将是一个开始。
【问题讨论】:
-
下次你应该使用
git submodule... -
@kirelagin,我实际上确实将它们都作为“所有者”存储库的子模块 - 在本地。我错过了那个细节来简化事情。我不确定这对我有帮助。你能解释一下吗?
-
您只需对主存储库进行二等分,这实际上是对子模块中提交的组合子集(顺便说一下,笛卡尔积)进行二等分。结果,您将在每个子存储库中获得一个段。此时应该很容易隔离问题,但如果不是,您始终可以在每个存储库中平分这些段。
-
@kirelagin,理论上,是的,我想这是真的。困难在于,在这种情况下,“父”存储库很少被提交(即,正如您所说,潜在的笛卡尔积的子集非常小)。如果我能在事后想出一种方法来生成那个“父”回购,虽然...... :)
标签: git git-bisect