2010-03-13 82 views
8

在工作中,我剛開始使用帶有AnkhSVN而不是Visual Source Safe的Subversion。我設法很好地整合了它,但看起來並不一樣。 使用VSS會發生以下情況:在Visual Studio中使用Subversion與Visual Source Safe相同

用戶通過右鍵單擊並選擇「簽出」或通過編輯檢出文件。如果另一個用戶試圖修改同一個文件,他會得到一個錯誤。沒有2個用戶可以同時編輯同一個文件。沒有花哨的合併。沒有衝突和衝突解決方案。

我明白Subversion背後的哲學是不同的,但是有沒有什麼辦法可以用Subversion複製上面描述的這種行爲?

AnkhSVN中有一個名爲「在更改中自動鎖定文件」的選項,但是即使我編輯文件時激活此選項,它也不會自動鎖定。 即使此選項有效,其他用戶在提交文件之前也不會看到鎖定。當他們試圖像在Visual Source Safe中那樣編輯它時,他們不會得到錯誤。

那麼基本上可以使用Subversion和AnkhSVN複製Visual Source Safe的行爲嗎?

+2

你爲什麼想要? Subversion並不是爲這種過程而設計的。如果您更喜歡VSS的工作方式,爲什麼不使用VSS? – Thomas 2010-03-13 19:54:19

+0

嗯,我不能。 Subversion被選中,我沒有發言權。 – Para 2010-03-14 16:27:39

+0

@Thomas:我不再相信我的源代碼到VSS。我看到了太多破損的數據庫,並且在分支之間合併更改實際上是不可能的。SVN採用了一種方式來傳遞需要鎖定的不可合併文件,而AnkhSVN通過一種方式來實現這一點,以便與VSS將會非常緊密地匹配。我並沒有試圖進入SVN vs VSS的討論:) – 2010-03-15 22:59:13

回答

7

顛覆源安全的一點是,你有排他鎖,許多人可以在同一個文件上工作。

如果你開始在文件上使用排它鎖,你將失去SVN的很多好處。

這個想法是你在代碼合併期間修復衝突。

請參閱this對所提問題進行一些討論(Revision control locking: Is the jury still out?)。

+1

+1的真相。 – 2010-03-13 19:58:12

2

您需要對要顯式鎖定的文件設置svn:needs-lock顛覆屬性。它只能推薦用於無法輕鬆合併的文件,如(大多數)二進制文件,而不是文本/代碼文件。通常文本/代碼文件會自動合併,當它們不衝突時通常很容易解決。

當您嘗試編輯svn:needs-lock屬性時,AnkhSVN會要求您鎖定文件(與VSS中的結帳相同)。如果啓用「自動鎖定文件」功能,鎖定對話框將被禁止,並且您將鎖定文件而不顯示對話框。

Svnbook解釋the differences between a lock-modify-unlock and copy-modify-merge,並且svn:needs-lock行爲也被描述

6

Agent SVN是Subversion一個MS-SCCI插件(就像VSS),所以它與Visual Studio就像VSS集成。

它也有一個鎖定退房選項,並與它的功能確實感覺很像VSS。

相關問題