如何在Mercurial中将单个文件从一个分支签出到另一个分支?
基本上我想将一个文件从分支experimental
复制到另一个分支production
。
答案 0 :(得分:17)
您可以使用hg cat -r experimental filename
在任何修订版本中显示任何文件。但是这种行为看起来像一个调试补丁,在这种情况下我会考虑transplant
ing(在其他DVCS中挑选)。
hg revert -r experimental filename
可以做到,而不是经过测试。
答案 1 :(得分:0)
hg revert
确实会从另一个分支的一个分支创建文件。但是,该文件在历史记录中看起来像是新添加的。其实际历史记录未显示在目标分支中。
我发现嫁接是更好的选择。
让我们假设您有2个分支,并且已经在侧分支中创建并处理了文件f2.txt。您还同时在同一分支中处理文件f3.txt。
在源(侧)分支中创建另一个变更集,该变更集仅包含您感兴趣的文件。如果您已经拥有这样的变更集,请使用它,而无需创建新的变更集。
更新到目标分支。
嫁接源变更集。 Mercurial会询问您是否要使用更改的版本。回答“ c”(已更改)。
结果如下:
文件历史记录已正确保存:
和f3.txt被 not 合并到目标分支中。