2013-05-22 37 views
6

使用合併功能在SVN(通過TortoiseSVN)幾個月後,我感覺SVN報告方式太頻繁,發生衝突。是否有可能用「更好」的替換TortoiseSVN的合併算法?

所以我正在尋找一種方法使SVN更經常地自動解決衝突,而無需我的用戶交互。

我所知道的similar questions,事實上,你可以替換差異閱讀器,並與外部因素合併工具:

enter image description here

從我的理解這些工具鏈,在爲時已晚;當內部算法已經檢測到無法解決的衝突時,它們將被SVN/TortoiseSVN調用。

所以我的問題是:

  • 是我的行爲(內部合併算法,外部合併工具)正確的假設?
  • 有沒有辦法通過(例如付費)工具改進內部合併算法?

(我使用VisualSVN Server和V1.7庫,在重要的情況下)

+3

你不會喜歡我的建議,但改進'svn'合併算法的唯一方法是使用'git'代替 – mvp

+0

@mvp是的,可能是正確的;-) –

回答

1

首先,它沒有任何關係龜 - 這是在SVN系統的頂部只是一個非常漂亮的GUI。

現在,也許你有很多合併,實際上需要人類的關注。如果是這樣,轉向類似git或Mercurial的東西不會幫助你 - 這些都不能說明你的真正含義,就像SVN無法說出的一樣。

您可以通過閱讀文檔查看SVN does its merge algorithm的方式。僅供參考v1.8對它進行了一些調整,這意味着在進行重新集成合並時手動決策要少得多 - 它現在只會自動執行,所以如果您一直在做特殊功能分支樣式合併並且一直在做錯了,那麼它不會再抱怨了。他們一直在努力合併最後2個版本,不僅通過mergeinfo改進它,而且通過移動等特性,它可以告訴文件不是新的或者被刪除,從而減少任何樹衝突類型合併。

1

這是很難猜測的範圍內,但被發現的衝突不太可能有什麼關係TortoiseSVN的特別而且更多的與一般的svn有關。正如mvp所說,git會更好(heh),但是你看看--reintegrate標誌是否合併?不知道如何直接從TortoiseSVN使用它,但它對減少衝突非常有用。

編輯View the 'advanced merging' tutorial here

+1

謝謝!與此同時,我們在服務器和客戶端都使用SVN 1.8,似乎他們對[簡化合並]做了很多工作(http://subversion.apache.org/docs/release-notes/1.8.html#auto-reintegrate)。我會拭目以待,看看它在未來的合併過程中的表現如何... –

+1

是的,這絕對是另一回事,更新的SVN版本似乎更好地處理了合併(尤其是'merginfo's',我發現),並且只有一個'。svn'文件是獎金:) –

相關問題