背景:
起初有一个文件base.c
,该文件在只有一个分支的存储库中Base
。
Base
被分支为Extended
-branch。然后这个新分支对base.c
.
如果在文件base.c
中修复了错误Base
,它们将被合并到Extended
.
base.c
事实证明,在分支中添加太多东西Extended
不是一个好主意,所以文件被复制到ext.c
. 然后从 中删除了大部分Extended
添加内容base.c
,并Base
从 中删除了功能ext.c
。所以此时base.c
inExtended
与 in 非常相似Base
。
问题:
当文件被拆分时,Mercurial 被告知这ext.c
是 的副本base.c
,因为它们共享一个共同的历史记录。不幸的是,这不是一个好主意。
现在,如果在Base
分支上修复了错误并合并到Extended
,Mercurial 认为这些更改应该同时应用于base.c
和ext.c
,即使后者不再与前者有任何相似之处。这使得合并非常烦人。
有没有办法告诉 Mercurialext.c
不再被视为相同base.c
?一种解决方案是ext.c
用新文件替换,但历史不会跟随。