我已经发生过好几次这样的情况:由于仓促且不太仔细地合并几个分支,我的 LaTeX 文档中存在一些遗留的合并标签。对于大多数编程项目,这些标签会导致语法错误,因此我会发现它们。然而,在 Latex 中,
<<<<
、====
和 >>>>
标签只是编译成一些其他字符序列,没有任何警告。
为了解决这个问题,我想将这些冲突标记更改为无法编译的内容,或者至少使它们非常明显(例如分页符、大字体警告或编译警告)。
我当然可以制作一个(bash)脚本,用我选择的东西替换所有这些标记,但我更喜欢它是这个问题的更优雅的解决方案。
我找到了
merge.conflictstyle
选项,但是 diff3
选项仅添加了 ||||
标记,该标记也可以在没有警告的情况下进行编译。
即使有一种方法可以使自定义冲突标记 LaTeX 特定(我认为没有,但我很可能是错的),可能很难选择一种在所有情况下都有效的方法。一个更简单的解决方案是启用 git 的库存“预提交”挂钩,该挂钩在提交时识别冲突标记,并在存在冲突标记时拒绝提交。要启用它:
cd <repo>
mv .git/hooks/pre-commit.sample .git/hooks/pre-commit
git 附带的 stock hook 也会查找空格错误。要手动运行检查,请使用以下命令:
git diff --check
也许你可以用
大数字更改属性
conflict-marker-size
。我所说的大数字,是指由于行太长而会触发 Latex 警告的数字。
$ cat .gitattributes
*.tex conflict-marker-size=100 ;# Or whatever makes Latex unhappy