Jes*_*rew 6 merge mercurial rename
我有一个Mercurial存储库,里面有四个分支.一个是"共同"分支,另外三个是"特定"分支,其由应用于公共分支的一些外观变化组成.其中一个外观变化包括重命名一些文件.
因此,公共分支具有"file.txt",并且第一个特定分支具有"file-01.txt",该文件是相同的文件,用于相同的目的但具有不同的名称和略微不同的内容.它在特定分支上重命名为file-01.txt,"hg log -f file-01.txt"正确显示重命名之前的历史记录.
当我在公共分支上对file.txt进行更改时,我需要能够将该更改合并到特定分支上的file-01.txt中.但Mercurial不明白文件是一样的.它告诉我:
远程更改了本地删除的file.txt
使用(c)吊死版本或假期(d)分开?
如果我选择"c"然后我得到一个新的file.txt,其中包含公共分支版本中的确切内容.如果我选择"d",则根本不会合并更改.
我该怎么做才能做到这一点?
编辑:我可以使它在一个新的测试库中正常工作,但不是我的实际回购.这是我得到的(请注意,rev 118位于特定分支上,就在原始重命名之前,所以我将再次通过重命名过程来说明):
C:\ ...> hg update -C 118
更新了0个文件,合并了0个文件,删除了0个文件,未解析了0个文件
C:\ ...> hg合并默认值
合并file.txt
合并anotherfile.txt
0文件更新,2文件合并,0文件删除,0文件未解析
(分支合并,别忘了提交)
所以它没有重命名.但如果我重命名,它会失败:
C:\ ...> hg update -C 118
更新了2个文件,合并了0个文件,删除了0个文件,解析了0个文件
C:\ ...> hg重命名file.txt文件-01.txt
C:\ ...> hg commit -m"重命名"创造了新的头脑
C:\ ...> hg合并默认值
远程更改了file.txt哪个本地删除
使用(c)挂起版本或者离开(d)eleted?
编辑2:这是我在最后一步得到的hg merge --debug default:
搜索副本返回rev 115
本地不匹配的文件:
file-01.txt
找到所有副本(*=合并,!=发散):
file-01.txt - > file.txt检查目录重命名
解析清单
覆盖无部分虚假
祖先9d979018c2df本地f842fdbc252b +远程05fc75e480da
anotherfile.txt:版本不同 - > m
远程更改file.txt哪个本地删除
使用(c)挂起版本或离开(d)eleted?