3

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

default分支中,有一个名为 的文件def.txt。该s1分支有名为 , 等的文件set3.txtset1.txt我也想将分支添加到set1.txt分支。s1default

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

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

那么知道如何解决这个问题吗?我的目标是让这两个分支如下所示:

  • default:def.txtset1.txt

  • s1:set1.txtset3.txt

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

4

2 回答 2

7

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

$ hg revert -r s1 set1.txt
于 2012-09-06T19:30:10.030 回答
0

hg revert是一个可爱的把戏。但是,我更倾向于使用hg cat -r s1 set1.txt > set1.txt它,它更明确地满足您的期望。我认为最终这两个命令之间没有任何区别。

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

于 2012-09-06T22:37:28.653 回答