version-control - 提交如何保持有序

标签 version-control mercurial

关于 Mercurial 的快速问题。假设我和我的同事都有一个最新的主干副本。我们都进行了更改,然后我们都相互推/拉了更改。

我猜 Mercurial 会根据提交日期按顺序保留更改(因为没有递增修订,只有一个 GUID)。那么如果我的电脑日期晚了一天,而我比同事晚了半天,会发生什么。我的零钱会比我同事的零钱提前半天出现吗?

最佳答案

@Martijn 有您的正确答案,但似乎没有点击。如果这说明了什么,请选择他的:

  • Mercurial 变更集的提交时间与它们的 merge 、交错或组合方式完全无关

  • 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/

    相关文章:

    version-control - 对于开源项目来说,不共享生产设置的好策略是什么?

    version-control - 在虚拟机上运行 JIRA

    svn - svn-merge 是向后的吗?

    mercurial - 了解 Mercurial merge 变更集

    mysql - 由于 cmake,从源代码构建 MySQL 会更改 Makefile

    git - 如何在 git 中显示 "new"提交

    git - windows单一开发者易于备份的版本控制

    mercurial - 如何存档/导出自使用 Mercurial 进行特定修订后更改的所有文件?

    mercurial - 解决Windows中的Mercurial案例折叠冲突

    Mercurial 工作流程 : why do I seem to commit everything twice?