使用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/

10-15 02:33