2010-08-06 28 views
3

我們的代碼位於SVN中。我們使用Visual Studio和AnkhSVN插件進行開發。當兩個人在SVN下編輯同一個文件時,我應該在「AnkhSVN」中做些什麼*做*

在SVN之前使用VSS我習慣了鎖定文件的想法,所以其他用戶不知道在編輯它的時候(實際上我認爲這是源代碼控制的主要觀點,爲了防止這些衝突丟失數據)。

有人告訴我,這種情況很少發生,並在那裏,因爲其他開發人員則鎖定你出更爲頻繁(這聽起來可能只適用於開發項目的某個子集原理),你不能工作的情況。但無論如何,SVN更好,我們正在使用它。

所以,當我編輯一個文件,並去檢查它,並找出其他用戶也編輯它,我究竟做了什麼

肯定有比救了我的文件的副本,還原變化,從服務器更新它,然後用合併的WinMerge我變回一個更好的辦法?當我右鍵單擊文件並單擊「合併」時,我被告知應該先更新,這顯然不是我需要的。

更新:部分答案
OK,這聽起來像我剛打的更新,然後自動SVN合併沒有衝突的變更,並應讓AnkhSVN的瞭解任何衝突發生變化,允許某種分辨率。 有誰知道這是如何在AnkhSVN工作 - 我實際上做了什麼?

(如果不是我來試試自己,接受了目前頂級的答案,並與下半年後人更新這個問題)。

回答

6

其實,這正是你需要的。

編輯:澄清,你需要做的只是點擊該更新。您不需要製作單獨的副本,還原等。從存儲庫進行更新會將這些更改與您自己的更新合併。

當你做了更新,在這裏你有本地修改到也已在資源庫中更改的文件,SVN將資源庫中的文件合併與您的本地文件,並保留了全部的修改。

實際上,它應該自動執行Winmerge的操作。

如果變化是衝突的,通常是它們發生在同一行內,將有合併衝突,必須加以解決。不知道AnkhSvn,我不知道在這種情況下會做什麼,但它應該有一些固定事物的方法。通常它包括查看超過3個文件(本地文件,存儲庫文件以及成功合併的結果),從中選擇要保留的文件的兩個更改版本的每個部分。

更新本地副本後,合併並修復了所有衝突後,您照常提交。

+2

根據我的經驗,有一些文件易於合併衝突,如SQL腳本或語言本地化字符串文件。在這些文件中,我們設置了svn:needs-lock subversion屬性。這將迫使開發者在編輯之前獨佔鎖定文件,同時沒有人能夠編輯它。 從Ankh svn你應該可以右鍵單擊該文件的編輯顛覆屬性。 – 2010-08-06 06:44:02

+0

是的,你是對的,確實有文件容易合併衝突的小編輯。表單設計器文件在.NET/C#中浮現,例如,輕微編輯可以重新排列大量代碼。 – 2010-08-06 07:05:29

+1

我知道你的意思,但我認爲從你的回答中應該更明顯的是,不需要在別處手動保存更改,恢復,更新和手動合併回來。只需要更新即可。 – 2010-08-07 13:47:13

0

這不是對您的問題的直接回答,但我會建議除了AnkhSVN或任何其他Subversion客戶端(如TortoiseSVN)之外還使用SVN-Monitor

有了它,您可以看到您的存儲庫,並將通過您的存儲庫中的更改通知。所以你可以看到其他開發者在倉庫中做了什麼,可能會看到你的提交是否會與其他簽入衝突,或者如果你可以更新你的本地副本而沒有任何影響/衝突

相關問題