Mercurial - 始终将本地文件与特定文件夹上的文件匹配

时间:2016-03-22 10:28:29

标签: mercurial

我需要设置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

1 个答案:

答案 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