星期一, 4月 20, 2009

Subversion不能merge時的處理

又是一篇個人筆記。

優秀主管帶領的優秀團隊在MCSD.Net Joseph兄的努力之下,目前已經進到coding階段,Joseph兄指導其他同仁把自己開發的模組放到branch避免干擾,但開始發現SVN令人詬病的merge問題。

由於處於開發初期,某些核心程式還不斷地更新,因此Joseph必須常更新trunk上的程式,而其他成員把trunk合併到自己的branch時常遇到問題。

以下為merge的標準步驟:
  1. 先commit自己的branch
  2. 再update自己的branch(這是因為TortoiseSVN的要求,不做不能merge)
  3. 把trunk合併到自己的branch
  4. 解決衝突
  5. 最後commit解決衝突的branch
  6. 必要時再把branch合併到trunk,方法如1~5。
講起來容易做起來難,尤其是遇到奇怪現象時需要靠經驗解決,有時候設定了svn:ignore的性質變動,會造成每次merge都有衝突,此時砍掉重練branch似乎比較快呀Orz

今天有兩位同事把TortoiseSVN從1.6.0升級到1.6.1後,合併時出現infinite depth的錯誤,個人猜測是.svn裏不知出什麼錯,也是砍掉重練才正常。

結論:終於知道為什麼gslin要把全公司的repository換成Git了。

沒有留言: