2012-07-09 90 views
8

是否可以將衝突標記更改爲用戶定義的內容?更改git衝突標記

動機:

它發生幾次對我說,由於幾個分支的草率和不小心的合併,也有一些遺留我的LaTeX文檔中合併標籤。對於大多數編程項目來說,這些標籤會導致語法錯誤,因此我會發現它們。但是,在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 2012-07-09 13:49:28

1

也許你可以用大數目更改屬性conflict-marker-size。由大號,我的意思是一個數字,會觸發Latex警告,因爲線路太長。

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