变更集和修订之间的差异

Posted

技术标签:

【中文标题】变更集和修订之间的差异【英文标题】:Mercurial difference between changesets and revisions 【发布时间】:2015-07-08 15:39:35 【问题描述】:

我是 Mercurial 的新手,并试图了解事情是如何运作的。

我想知道变更集和修订有什么区别?

谢谢。

【问题讨论】:

没有评论就否决了?非常鼓舞人心:) 【参考方案1】:

无。

来自Understanding Mercurial 页面:

当你提交时,工作目录相对于它的状态 parents 被记录为一个新的 changeset(也称为新的 “修订版”)...

和further down页面:

Mercurial 将对多个文件的相关更改组合成单个原子 变更集,它们是整个项目的修订

(强调我的)

【讨论】:

【参考方案2】:

即使老了,也可能有人会偶然发现这一点,我会说这是一个至关重要的区别。正如@Edward 指出的那样,它们是相关的。不过,基于Mercurial's FAQ,它们并不相同。

修订号是一个简单的十进制数字,与本地存储库中的提交顺序相对应。

重要的部分是本地存储库,更进一步:

请务必了解,由于 Mercurial 的分布式、去中心化架构,这种排序可能会因机器而异。这就是变更集 ID 的用武之地。变更集 ID 是一个 160 位的标识符,它唯一地描述了一个变更集及其在变更历史中的位置,无论它位于哪台机器上。

在与其他 Mercurial 用户讨论修订时,您应该始终使用某种形式的变更集 ID 而不是本地修订号,因为他们的系统上可能有不同的修订号。

根据我的经验,修订号有时确实不同,而且不是唯一的。

【讨论】:

谢谢,这是一个需要注意的关键区别。

以上是关于变更集和修订之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

如何查看Subversion中某个修订版上的文件所做的更改

如何做好工程合同中的变更管理

使用mercurial克隆或拉到标记后如何获取标记变更集?

Android SDK对应API级别以及版本说明

如何在两个 TFS 标签之间查找变更集(用于发行说明/变更日志)

Git与SVN对比