查找解释两个变更集之间差异的所有日志消息

时间:2013-02-11 12:19:08

标签: mercurial configuration-management

我想找出两个不同的修订版之间的所有差异。我主要希望看到差异的历史(即变更集日志消息),而不是文件中更改内容的内部细节。

示例:比较修订 105 106

   /---101---103---105 
100         \
   \---102---104---106

这里,修订版106包括105不具有的变更集106,104和102,而105又包括106不具有的103和105。我怎样才能轻松获得此列表;理想情况下也考虑到移植物?

以下修订版集查询几乎可以运作:

(ancestors(105) - ancestors(106)) + (ancestors(106) - ancestors(105))

然而,这是一个相当长的查询,似乎是一个相当常见的问题:为什么这个分支与我的本地版本有什么不同?我也认为它没有考虑到移植物和它不幸的是,包括无趣的变更集,例如合并。

包含git等效的加分点。

编辑 我想要的原因是向人们解释这些版本的不同之处。我有一个复杂的源代码树,我需要告诉别人版本X包含功能A& B和错误修正P,但版本Y包括功能C& D和bugfix Q - 并且它们在其他方面是相同的。

如果我回到我的例子:合并本身并不有趣(所以在上面的示例中104并不感兴趣),但合并组成的变更集非常有趣 - 意思是101和102。 Merges将许多更改组合到一个缺少合理日志信息的变更集中。特别是,如果我找到最近的祖先,我会找到101,然后它看起来像102并不特别感兴趣。就应用的实际补丁而言,此信息已完成 - 我不需要查看如何构造合并变更集104,仅查看结果。但是,如果我想知道为什么它包含这些更改,我需要来自102的日志消息。

1 个答案:

答案 0 :(得分:0)

嗯,我没有测试过,但会:

ancestor(X,Y)::X + ancestor(X,Y)::Y

获取相同的列表。我认为它会,也可能会更快。