如何在Mercurial中将文件从一个分支签出到另一个分支?

时间:2011-02-21 13:40:54

标签: mercurial

如何在Mercurial中将单个文件从一个分支签出到另一个分支?

基本上我想将一个文件从分支experimental复制到另一个分支production

2 个答案:

答案 0 :(得分:17)

您可以使用hg cat -r experimental filename在任何修订版本中显示任何文件。但是这种行为看起来像一个调试补丁,在这种情况下我会考虑transplant ing(在其他DVCS中挑选)。

hg revert -r experimental filename可以做到,而不是经过测试。

答案 1 :(得分:0)

@shellholic建议的

hg revert确实会从另一个分支的一个分支创建文件。但是,该文件在历史记录中看起来像是新添加的。其实际历史记录未显示在目标分支中。

我发现嫁接是更好的选择。

让我们假设您有2个分支,并且已经在侧分支中创建并处理了文件f2.txt。您还同时在同一分支中处理文件f3.txt。

enter image description here

  1. 在源(侧)分支中创建另一个变更集,该变更集仅包含您感兴趣的文件。如果您已经拥有这样的变更集,请使用它,而无需创建新的变更集。

  2. 更新到目标分支。

  3. 嫁接源变更集。 Mercurial会询问您是否要使用更改的版本。回答“ c”(已更改)。

enter image description here

结果如下:

enter image description here

文件历史记录已正确保存:

enter image description here

和f3.txt被 not 合并到目标分支中。