如何将文件从分支添加到Mercurial中的另一个分支?

时间:2012-09-06 18:48:09

标签: mercurial branching-and-merging mercurial-extension

我在本地存储库中有两个分支:defaults1

default分支处有一个名为def.txt的文件,等等。 s1分支包含名为set3.txtset1.txt等的文件。我想将set1.txt分支s1添加到default分支好。

当工作目录位于hg add set1.txt分支时,我尝试使用default命令。但是,由于default分支没有该文件,我无法添加它,它总是会给我一条错误消息,例如"no set1.txt file found"

我不想使用merge命令,因为我不想将s1分支中的所有其他文件合并到default分支。我只想添加一个文件set1.txt。我也试过了hg transplant -b s1,但似乎没有达到同样的目的。

所以任何想法如何解决这个问题?我将这两个分支的目标看作如下:

  • defaultdef.txtset1.txt等。

  • s1set1.txtset3.txt等。

我的机器是Red Hat Linux Workstation 6,它有Mercurial 1.7.3和TortoiseHG 1.5。

2 个答案:

答案 0 :(得分:5)

您可以使用技巧:将文件set1.txt“还原”到分支s1。由于分支是修订,这将起作用:

$ hg revert -r s1 set1.txt

答案 1 :(得分:0)

hg revert是一个可爱的伎俩。我更倾向于使用hg cat -r s1 set1.txt > set1.txt,但是更明确地做了你期望的事情。我认为这两个命令之间没有任何区别。

直观地说,您正在尝试将一个分支中的单个文件合并到当前分支中。快速谷歌发现这篇文章在DVCS中探索这个概念:http://josefbetancourt.wordpress.com/2011/01/13/merge-single-file-hg/