在mercurial中分支分支之间的单个文件

时间:2013-05-28 03:00:36

标签: mercurial

我正在使用两个分支机构开发一个网站:开发(主动处理代码)和默认(当我们准备好上线时合并功能)。我刚刚合并了更改,并且在两个分支之间切换时收到此消息:

1 files updated, 0 files merged, 0 files removed, 0 files unresolved

我已经运行hg status --rev default:develop来确定它所引用的文件,但我无法弄清楚有什么不同。

这是我到目前为止所尝试的内容:

hg diff --rev default:develop
hg diff --rev default:develop file.php

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:22)

  1. 两个分支之间的差异:

    hg diff -r BRANCH1:BRANCH2

  2. 在两个分支之间区分单个文件:

    hg diff -r BRANCH1:BRANCH2 the_sinlge_file_to_diff

  3. 参考

答案 1 :(得分:0)

  

我刚刚合并了更改,并且在两个分支之间切换时收到此消息:

当您将分支合并为默认分支时,分支仍然具有前一个更改集的头部。合并提交位于默认分支上,而不是开发分支。这使您可以切换到开发分支并继续工作

所以,如果你这样做了:

# hg update default
# hg merge develop
# hg commit

......你会得到......

D1 --- D2 --- D3 --- D4
                   /
                  /
V1 --- V2 --- V3 -

DdefaultVdeVelopD4是合并。这是您所处的状态。当您在分支之间切换时,您可以在D4V3之间切换。正在更改的一个文件是在default分支中更改的文件。如果你继续做下去......

# hg update develop
<some work>
# hg commit develop

......你会得到......

D1 --- D2 --- D3 --- D4
                   /
                  /
V1 --- V2 --- V3 --- V4

V4基于V3,合并前开发分支的变化,而不是合并版本。

这不能回答你的差异问题,但它告诉你为什么你的分支不包含相同的东西。