Merge 如何在Mercurial的不同分支中保存配置文件?

Merge 如何在Mercurial的不同分支中保存配置文件?,merge,mercurial,branching-and-merging,Merge,Mercurial,Branching And Merging,我在Mercurial存储库中保存不同的配置文件时遇到问题。例如,我有两个分支-dev和testing。对于每一个,我都有我的Jenkins文件(Jenkins管道的配置)。它也可以是分支之间不同的任何其他配置文件(DB config、其他系统配置)。每次我将测试与开发合并时,我都应该手动合并Jenkins文件。我怎样才能解决这个问题?我想保存配置文件的历史记录,不想在合并时遇到任何问题。有什么方法可以解决这个常规问题吗?这可以做到: 当您遇到合并冲突时(显然,每次将这两个分支与具有相同名称但不

我在
Mercurial
存储库中保存不同的配置文件时遇到问题。例如,我有两个分支-
dev
testing
。对于每一个,我都有我的Jenkins文件(Jenkins管道的配置)。它也可以是分支之间不同的任何其他配置文件(DB config、其他系统配置)。每次我将
测试
开发
合并时,我都应该手动合并Jenkins文件。我怎样才能解决这个问题?我想保存配置文件的历史记录,不想在合并时遇到任何问题。有什么方法可以解决这个常规问题吗?

这可以做到:

当您遇到合并冲突时(显然,每次将这两个分支与具有相同名称但不同内容的配置文件合并时,您都会看到冲突),您可以仅对该配置文件执行重新合并,同时还可以使用
--tool
标志通知“合并机器”我们希望通过运行以下命令来保留此文件的本地版本:

hg解析路径/to/config/file--重新合并--工具“:local”

或简短版本:
hg res path/to/config/file--re merge-t':local'

注意:
hgmerge
也有这个
--tool
选项,但使用时要小心,因为它会将该合并工具应用于该操作中要合并的每个文件


要了解有关合并工具的更多信息,请运行:
hg help merge tools

Mercurial很多时候都有自定义合并工具和合并模式的概念(请参阅
MergeTools.rc
MergePatterns.rc


也就是说,你可以为你的Jenkins文件(即使它没有唯一的perrepository扩展名,给它)定制合并工具,它只会执行
hg merge--tool internal:local

谢谢你的回答。老实说,这听起来更像是一个变通解决方案。在合并过程中,我每次都应该使用hg resolve。这仍然是个问题。每次我都应该“告诉”我的同事这种方法。存储库中未保存有关配置文件“特殊状态”的任何信息。您可以创建第二个repo,一个目录,其中只包含配置文件,而忽略其他所有内容。然后删除并忽略主repo中的配置文件。是的,谢谢。这听起来是个不错的解决办法。而且它肯定解决了合并的问题。但是它给ci系统带来了很多问题(在我的例子中是Jenkins)。