关于 Mercurial 的快速问题。假设我和我的同事都有一个最新的主干副本。我们都进行了更改,然后我们都相互推/拉了更改。
我猜 Mercurial 会根据提交日期按顺序保留更改(因为没有递增修订,只有一个 GUID)。那么如果我的电脑日期晚了一天,而我比同事晚了半天,会发生什么。我的零钱会比我同事的零钱提前半天出现吗?
最佳答案
@Martijn 有您的正确答案,但似乎没有点击。如果这说明了什么,请选择他的:
Mercurial 和其他 DVC 完全基于 DAG(有向无环图)进行所有历史跟踪,这意味着:
在提交之前,您可以通过键入
hg parents
来查看变更集的父项将是什么。一旦你提交,你就可以在 hg log
中看到它.在您的示例中,如果您已经拉取了同事的变更集并更新了您的工作目录以反射(reflect)它们(
hg pull ; hg update
),那么他或她的变更集将成为您的变更集的父级。如果您还没有拉取/更新以反射(reflect)他或她的变更集,那么您的两个变更集将具有相同的父级——它们将是 sibling ——当它们 merge 时,它们都不会以任何方式优先于另一个。做单时的顺序
hg log
由变更集到达 的顺序决定您的 本地存储库,并且可能因存储库而异,具体取决于它们首先从何处提取——这就是为什么您不能使用变更集旁边显示的整数进行跨存储库操作——只有散列是全局的。总之日期是从不 在正常操作中咨询,是 纯元数据与作者或提交描述无关。
关于version-control - 提交如何保持有序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6257337/