2011-03-03 21 views
38

是知道的是,默認的命名限制爲100個,並可以使用配置「diff.renamelimit配置」GIT警告:過多的文件跳過不精確重命名檢測

什麼很擔心是增加這個值,如果這個配置是沒有設置,會有錯誤的合併,任何缺少的代碼? 我試圖合併(混帳合併)2個分支有巨大的變化。

有人可以更多地瞭解這個配置設置嗎?

回答

28

您的內容是安全的。

據我瞭解,git實際上並不具備一流rename任何操作的概念(只能bzr確實大3個DVCSs的):在mv是糖底層機器,這基本上是頂部一個add和一個rm。由於git可以跟蹤在此類操作中更改的內容,但它可以使用啓發式方法來猜測addrm實際上是否爲mv。因爲這會比僅僅顯示實際記錄的內容更多的工作 - git-diff的文檔解釋它「...需要O(n^2)處理時間,其中n是潛在重命名/複製目標的數量」 - git won'不要在涉及太多文件時嘗試。您提到的設置只是控制該閾值。 「

+14

」您的內容是安全的「 - 但如果檢測結果錯過了在合併的一側重命名並在另一側更改的文件,則會發生合併衝突,如果檢測到重命名,您可能得不到合併衝突。合併不會錯誤*,但可能需要更多的用戶努力才能完成。 – Cascabel 2011-03-03 17:53:54

+0

感謝Hank和Jefromi。 在任何情況下,設置這個「diff.renamelimit config」是否真的有用? – 2011-03-04 06:45:45

+0

如果有人也想知道這個設置是否有用:是的,它可以幫助您在一個分支中移動數百個文件時合併分支,而另一個分支則對這些文件進行了很多更改。當我在一個分支上進行大量的代碼重構以及其他正在進行的一些工作時,情況就像這樣。 – korda 2015-01-08 10:11:51