SPI*_*984 3 version-control mercurial
我有一个问题.假设我有一堆托管形成层次结构的存储库,例如:A - > B - > C(意思是A是中央存储库,其余的都是它的后代).
现在假设我使用C的克隆.假设我想要不仅从C获得更改,而且从中央存储库获取更改,因此我执行以下命令:
hg pull [Address of A]
hg up
这似乎是完全合法的,但是发生了什么然后我提交我的更改并将它们推送到C?不仅会推送我的本地修改,还会修改中央存储库(如果有的话).如果有人试图将变化从A拉到C,会发生什么?是否会发生冲突或者它会成功合并更改A - > local - > C并更改A - > C. Mercurial会将其识别为相同的变更集吗?
如果我确定我的代码足够稳定并且可以放在中央存储库中,则会发生相同的情况:
hg commit -u spirit -m "A local modification that is stable"
hg push [Address of A]
如果我从A拉到C然后再从C拉到我的本地仓库会发生什么,它会识别这些变更集来自我的本地仓库,还是会报告冲突并建议合并?
那个案子中最好的做法是什么?仅执行后续的拉动和推动(即A < - > B,B < - > C,C < - >本地)?但问题是我只能访问我的本地存储库,它是C的克隆.如果我想要在我的本地机器上,如何从B到C的拉?Mercurial如何处理
如果有人试图将变化从A拉到C,会发生什么?是否会发生冲突或者它会成功合并更改A - > local - > C并更改A - > C. Mercurial会将其识别为相同的变更集吗?
已经存在于C中的变更集已经存在,因为它们的ID已经存在.这就是改变不可改变的原因.如果您可以修改变更集,则其ID将更改(ID是变更集内容的散列).Mercurial然后(正确地)将其视为不同的变更集.通过保持变更集不可变,我们可以确定它们的散列将与它们来自哪个repo相同.
会有冲突吗?
没有
或者它将成功合并更改A - >本地 - > C与更改A - > C.
不会发生合并,因为它们是相同的更改.它只是看到它已经拥有它们.
除非您想要组合来自两个并行更改集的更改,否则不会发生合并,除非您明确要求更改.
| 归档时间: | 
 | 
| 查看次数: | 104 次 | 
| 最近记录: |