2012-09-24 26 views
2

我們多個程序員必須同時在一個項目中工作。有時我們必須在一個文件中工作。SVN一個項目:多個程序員,鎖定或分支哪一個更好?

哪個更好

  • 文件鎖定
  • 分支

或者說,如何用更好的方式使用這兩者?

+2

您應該閱讀SVNBook「版本控制基礎|版本控制模型」,網址爲http://svnbook.red-bean.com/en/1.7/svn.basic.version-control-basics.html#svn.basic.vsn - 型號 – bahrep

+0

@bahrep良好的參考 –

回答

3

非鎖定結帳(您稱之爲「分支」)總是更好。鎖定結帳不會導致簽入衝突,但會導致簽出衝突。只要人們100%可靠(並且速度快),結賬衝突可以得到緩解。否則,你會讓人們坐在他們的手中來結賬,而不是並行工作。

例如,我開始處理一個文件,所以我鎖定它。然後我去吃午飯。當我離開時,沒有其他人能夠使用這個文件。我從午餐回來,我的電子郵箱中充滿了「嘿,請解鎖XXX」,我的手機有消息等。這些「壓力」最終導致人們在版本控制之外進行工作,然後將它們「合併」成修訂版控制系統(這很容易遺漏項目失敗)。

使用非鎖定結帳功能,您和我都可以在無需協調的情況下結帳,而且我們兩個(再次不協調)都會修改一些相同的文件。我首先檢查,這將與存儲庫順利合併(我再次沒有和你協調)。您嘗試檢入,但其中三個文件基於「當前」文件副本「之前」製作的副本。你現在任命一個選擇。刪除文件並根據「當前」副本進行更改,或下載應用的更改以從「舊」副本創建「當前」副本並將這些更改合併到您的提交中。你只能等你自己。

使用非鎖定結帳功能,一個人不會影響團隊的其他成員,無論他們試圖執行何種操作。如果他們選擇不經常合併或早期合併,他們可能會爲自己承擔更多的工作;但是,他們不會爲其他人帶來更多的工作。

+1

真的,分支不是鎖幣的另一面。但是,既然你已經這樣對待,我也必須在我的回答中這樣做。你的意思是更多的「鎖定結帳」vs「非鎖定結賬」 –

+0

更好的答案。我的意思是「鎖定結賬」。 –

+0

「非鎖定結帳」的場景是什麼? –