2012-07-09 17 views
8

競合マーカーをユーザー定義のものに変更することはできますか?git競合マーカーの変更

動機:

原因のいくつかの枝の性急ではなく、非常に慎重にマージし、いくつかは、オーバー私のLaTeX文書内のタグをマージ左がある、と私に数回起こっています。ほとんどのプログラミングプロジェクトでは、これらのタグは構文エラーに繋がります。しかし、ラテックスの< < < <では、====と>>>>タグは警告なしで他の文字シーケンスにコンパイルされます。

これを解決するには、これらのコンフリクトマーカーをコンパイルしないものに変更するか、少なくともそれらを目立たせるように変更します(改ページ、巨大なフォント警告、コンパイル警告など)。

もちろん私の選択肢のすべてでこれらのマーカーを置き換える(bash)スクリプトを作成することもできますが、私はこの問題をより洗練された方法で解決することをお勧めします。

P.S.私はmerge.conflictstyleオプションを見つけましたが、diff3オプションは||||マーカーも警告なしにコンパイルします。

答えて

7

LaTeX固有の競合マーカーを作成する方法があったとしても(私はそこにあるとは思えませんが、間違っている可能性があります)、すべての場合に効果があったものを選ぶのは難しいかもしれません。より簡単な解決法は、コミット時に競合マーカーを特定し、存在する場合にはコミットを拒否するgitの在庫「プリコミット」フックを有効にすることです。これを有効にするには:

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

gitと共に出荷されるストックフックも空白エラーを探します。手動でチェックを実行するには、次のコマンドを使用します。

git diff --check 
+0

これは便利な解決策です。マージ・タグを含むファイルを誤ってコミットすると、ファイル名と行番号とともに「残存競合マーカー」が表示されます。これは確かに私の文書を正しく維持するのに役立ちます。 – Laar

1

たぶん、あなたは大きな数持つ属性conflict-marker-sizeを変更することができます。 大きな数字は、ラインが長すぎるためにラテックスの警告を引き起こす数字を意味します。

$ cat .gitattributes 
*.tex conflict-marker-size=100 ;# Or whatever makes Latex unhappy 
関連する問題