我剛剛閱讀了關於分佈式版本控制系統的Joel的blogpost,並且無法理解主要思想。他說,SVN根據版本進行思考,而Mercurial根據變化進行思考。據Joel稱,它解決了合併問題。分佈式版本控制系統合併易用性細節
我幾次聽到這個想法,但仍然沒有想到它。據我所知,SVN的合併機制也是基於變化(差異)。那麼區別是什麼呢?我沒有使用分佈式版本控制系統的經驗,但我主動使用SVN分支/合併,並沒有出現嚴重問題。當然,有時會合並衝突(當兩個分支中的一段代碼被更改時)。但我看不出如何通過某種控制版本系統自動解決這個問題。
不同之處在於現代DVCS記錄完整DAG的變化,而afaik svn只記錄線性歷史記錄(或樹)並且沒有正確記錄合併。 – tonfa 2010-06-17 08:41:35
請參閱http://stackoverflow.com/questions/2613525/what-makes-merging-in-dvcs-easy,以及http://stackoverflow.com/questions/2850996/mercurial-vs-subversion-其性能更好/ 2851020#2851020 – VonC 2010-06-17 09:09:06
喬爾的解釋是不正確的。正如Tonfa所說,這裏的主要想法是使用現代DVCS中的修訂版DAG。 – bialix 2010-06-18 04:49:20