首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mercurial:如何将更改合并到另一个分支中重命名的文件?

Mercurial:如何将更改合并到另一个分支中重命名的文件?
EN

Stack Overflow用户
提问于 2010-10-27 01:52:32
回答 1查看 5.4K关注 0票数 6

我有一个有四个分支的汞库。一个是“公共”分支,另三个是“特定”分支,包括一些应用于公共分支的化妆品变化。其中一个表面上的改变是重新命名一些文件。

因此,公共分支具有"file.txt",而第一个特定分支具有" file -01.txt“,它是同一个文件,用于相同的用途,但名称和内容略有不同。它在特定分支上被重命名为file-01.txt,"hg -f file-01.txt“正确地显示了重命名之前的历史记录。

当我在公共分支上更改file.txt时,需要能够将该更改合并到特定分支上的文件-01.txt中。但是Mercurial不明白这些文件是一样的。它告诉我:

远程更改本地删除的file.txt

使用(C)悬挂版本还是留下(D)优雅?

如果我选择"c“,那么我会得到一个新的file.txt,其中包含了公共分支版本中的内容。如果我选择"d“,那么变化就完全没有合并。

我该怎么做才能把这件事做好?

编辑:我可以让它在一个新的测试存储库中正确工作,但不是我的实际回购。下面是我得到的信息(请注意,rev 118位于特定的分支上,就在原始重命名之前,因此我将再次通过重命名过程来说明):

C:...> hg更新-C 118

0文件更新,0文件合并,0文件删除,0文件未解决

C:...> hg合并默认

合并file.txt

合并anotherfile.txt

更新0份文件,合并2份文件,删除0份文件,0份未解决文件

(分支合并,不要忘记提交)

所以不用重命名就行了。但如果我改名,它就失败了:

C:...> hg更新-C 118

2个文件更新,0份文件合并,0份文件被删除,0份文件被解析

C:...> hg重命名file.txt文件-01.txt

C:...> hg提交-m“重命名”

创造新的头

C:...> hg合并默认

远程更改本地删除的file.txt

使用(C)悬挂版本还是留下(D)优雅?

编辑2:下面是我从hg merge --debug default学到的最后一步

搜索副本返回rev 115

本地未匹配的文件:

file-01.txt

找到的所有副本(* =合并,!=发散):

文件-01.txt -> file.txt

检查目录重命名

解析舱单

覆盖无部分错误

祖先9d979018c2df本地f842fdbc252b+远程05fc75e480da

anotherfile.txt:不同版本的-> m

远程更改本地删除的file.txt

使用(C)悬挂版本或离开(D)?

EN

回答 1

Stack Overflow用户

发布于 2010-10-27 02:26:25

问题在于如何处理分支中的重命名。从外观上看,您(或您的GUI)对旧名称file.txt进行了“删除”,然后添加了名为file-01.txt的文件的副本。

当你这样做的时候,mercurial根本不知道它们是有联系的。但是,如果您在分支中使用了以下命令:

代码语言:javascript
运行
复制
hg rename file.txt file-01.txt

然后,与您看到的消息不同,来自file.txt的更改将应用于文件-01.txt。然而,没有你的帮助,mercurial不可能知道它们是相互关联的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4029410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档