改变git冲突标记

时间:2012-07-09 11:28:12

标签: git merge latex git-merge

是否可以将冲突标记更改为用户定义的内容?

动机:

对我来说已经发生了好几次,由于仓促而且不太仔细地合并了几个分支,我的LaTeX文档中还有一些剩余的合并标签。对于大多数编程项目,这些标签会导致语法错误,因此我会发现它们。但是,在Latex中,<<<<<,====和>>>>标签只是编译成其他一些字符序列而没有任何警告。

为了解决这个问题,我想将这些冲突标记更改为无法编译的内容,或者至少使它们非常明显(例如分页符,大字体警告或编译警告)。

我当然可以创建一个(bash)脚本,用我选择的东西替换所有这些标记,但我更希望它能解决这个问题。

P.S。我找到了merge.conflictstyle选项,但是diff3选项只添加了||||标记也会在没有警告的情况下编译。

2 个答案:

答案 0 :(得分:8)

即使有一种方法可以使LaTeX特定的自定义冲突标记(我认为没有,但我很可能是错误的),所以选择一个在所有情况下都有效的方法可能很难。一个更简单的解决方案是启用git的库存“预提交”钩子,它在提交时识别冲突标记并拒绝提交(如果它们存在)。启用它:

cd <repo>
mv .git/hooks/pre-commit.sample .git/hooks/pre-commit

git附带的库存钩子也会查找空白错误。要手动运行检查,请使用以下命令:

git diff --check

答案 1 :(得分:1)

也许您可以使用大号更改属性conflict-marker-size。通过大号,我的意思是一个会触发Latex警告的数字,因为该行太长了。

$ cat .gitattributes
*.tex conflict-marker-size=100 ;# Or whatever makes Latex unhappy