我正在尝试为远程团队创建一个捆绑包。他们有一份来自 892 版的仓库副本,而我们目前正在使用 1119 版。
首先我尝试了补丁,但是在尝试应用它们时创建了大量文件(通常在合并提交时)......而且我们的存储库大小为 17GB,所以我正在尝试创建一个增量补丁,因此认为 hg bundle 非常适合这个。
我通过以下方式生成了一个包:
>hg bundle --rev 1119 --base 892 depot-892-to-1119.bundle
这创建了一个 350MB 的捆绑文件,这是可以接受的并且感觉不错。
但是,当我们将它应用到仅适用于修订版 892 的目标仓库时,它会出现以下问题:
E:\dest-depot>hg unbundle -u depot-892-to-1119.bundle
adding changesets
transaction abort!
rollback completed
abort: 00changelog.i@e5cc33458251: unknown parent!
到目前为止,这与我在搜索时看到的其他几个问题相似,但我会更进一步。
我在源代码(更大的仓库)中查找了 e5cc33458251,它显示为修订版 930,这显然在 rev 892 之后,但指定这是失败的原因。当然,目的地仓库没有修订版。这就是我首先创建捆绑包的原因......所以我不确定为什么这个包会给我带来问题。
现在我们在软件仓库中确实有许多分支,并且 rev 892 被提示为“Patch 2.7”分支而不是默认分支。我不知道这是否会导致问题。最终,该补丁分支在 rev 999 中被合并回默认值。
930 实际上是对代码的一个非常小的和微不足道的更改,并且也在“Patch 2.7”分支中。修订图中实际上有 2 条 Patch 2.7 行,它们在 932 中合并在一起。但同样,没什么奇怪的。
我在这里没有看到问题。关于我应该生成什么样的捆绑包的任何想法?或者如果我应该走另一条路?