变更集和修订之间的差异
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 而不是本地修订号,因为他们的系统上可能有不同的修订号。
根据我的经验,修订号有时确实不同,而且不是唯一的。
【讨论】:
谢谢,这是一个需要注意的关键区别。以上是关于变更集和修订之间的差异的主要内容,如果未能解决你的问题,请参考以下文章