使用mercury,我遇到了一个奇怪的问题,一个提交者的一行在时间轴上的某个时刻消失了,我无法解释为什么会这样。
日志如下所示:
changeset: 172:xyz123
parent: 76:pqr345
user: barry baggings
date: Mon Jan 16 0:12:43 2012 +0000
summary: blah blah blah
changeset: 171:opq123
parent: 165:abc234
user: mary moggings
date: Mon Feb 01 1:12:41 2012 +0000
summary: naw naw naw
运行:
hg diff -r 171 -r 172
为abc.py提供此功能(省略标题):print "context line1"
- print "i need this line!"
print "context line2"
该模块
print "i need this line!
肯定是在171:opq123中引入的,但在172:xyz123中又消失了,但是在76和172之间的差异显示abc.py没有mods!巴里怎么能跳过玛丽这样的变化?
我只是误解了所有这些是如何工作的吗?我在CVS和SVN等方面的背景相当不错,但DVCS有时会令我头疼……有人可以解释吗?
我有点怀疑这是因为我们使用的是水银1.7.1-可能是个错误吗?
最佳答案
这些是单独的头,其中172不基于171。如果启用了graphlog扩展并运行hg glog
,则生成该图;如果运行hg serve
,则可以从hgweb直观地看到该图,在浏览器中将其打开,然后单击“图形”链接显示的内容可能比变更集的“父”值更清晰。
o changeset: 172:xyz123
| parent: 76:pqr345
| user: barry baggings
| date: Mon Jan 16 0:12:43 2012 +0000
| summary: blah blah blah
|
| o changeset: 171:opq123
| | parent: 165:abc234
| | user: mary moggings
| | date: Mon Feb 01 1:12:41 2012 +0000
| | summary: naw naw naw
| |
这清楚地表明变更集172不是基于变更集171的,因此在比较它们时,变更可能发生在其他位置。您不是在比较祖先和后代,而是在某种程度上比较表亲。
因此,虽然您在171中引入了它,但是由于172不是基于171,所以它不会增加行数。实际上,合并就是获取更改,进行基于171和172(及其祖先,直到它们收敛)的更改集所需要的。
您可能希望合并更多的头像。您可以使用
hg heads
来查看它们。 hg serve
对理解此类内容也非常有帮助。关于mercurial - 在Mercurial中,如果没有合并,线如何消失?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9175719/