我需要设置Mercurial HG,以便始终take local
版本匹配特定文件夹的文件。
EG:when conflict on /**/dist/ always take local
这是因为我需要提交一些构建的文件。 提前致谢
我需要提交一些处理器生成的文件(libsass,webpack),这取决于我的构建系统暂时不可用。所以,我从hgignore
中删除了这些文件。现在,我遇到的问题是对这些生成的文件进行 Mercurial冲突。 我希望使用这些文件的本地版本自动执行合并解析。类似于:How to keep the local file or the remote file during merge using Git and the command line?但是对于Mercurial HG
答案 0 :(得分:3)
您可以在~/.hgrc
或.hg/hgrc
中添加合并模式,以指定给定文件合并的默认工具:
[merge-patterns]
**/dist/* = :local
:local
合并工具将优先考虑本地版本。有关内部合并工具的完整列表,请参阅hg help merge-tools
。请注意,在合并期间使用--tool
选项将覆盖此选项;但是,设置ui.merge
选项以定义默认合并工具不会。
**/dist/*
模式可能是您需要的,也可能不是。请根据您的需要进行调整(请注意,如果需要,还可以使用正则表达式模式以获得额外的灵活性。)
或者,您也可以在合并后自动解析这些文件,例如用:
hg resolve --tool :local $(hg files -I '**/dist/*')
或者,如果文件列表太大而无法放在命令行上:
hg files -0 -I '**/dist/*' | xargs -0 hg resolve --tool :local