2009-10-08 47 views
6

我的情況是這樣的:我有一個在我家設置的Subversion服務器,我們也在我工作的公司使用Subversion。顛覆:如何刪除提交的財產

在工作中,我們使用鎖定/編輯/解鎖模型(主要是因爲我們正在從Visual SourceSafe過渡到現在更容易)。目前,這是通過在所有添加的文件(使用每臺客戶端機器上的SVN客戶端配置文件的auto-props部分)上設置'needs-lock'屬性來實現的。我不想用我的家用SVN服務器的這種模式(我更喜歡編輯/合併/提交的工作方式),所以當我從我的工作PC提交任何東西到我的家庭服務器後,我必須從我添加的任何文件中手動刪除需要鎖定屬性。

有沒有一種方法可以將SVN客戶端設置爲僅將此屬性應用於提交給特定服務器的文件?還是我錯誤地說:我應該在工作服務器上使用鉤子來添加這個屬性,而不是客戶端?

任何幫助或建議非常感謝。

編輯:顯然,你不能在服務器上做到這一點(或至少強烈建議你不要這樣做)。

+0

YUCK!在工作中開始戰鬥,讓這個變化! – 2009-10-08 10:13:29

+0

我知道...我知道... – 2009-10-08 10:15:18

+0

最糟糕的部分是,我設置了它... – 2009-10-08 10:17:53

回答

3

subversion autoprops功能在您的SVN客戶端的config文件中配置。還有一個單獨的servers配置文件,支持特定於服務器的設置,但不幸的是,您不能覆蓋那裏的自動引導。

我建議你配置的兩個版本:config.homeconfig.work。然後編寫一個shell腳本(例如.bat文件),該腳本通過config複製其中的一個。這應該允許您在兩種配置之間快速輕鬆切換。

+0

這是一個很好的計劃。 – 2009-10-08 18:00:04

7

我也寫了一個小小的Windows批處理文件,以遞歸方式從任何已經設置好的文件夾中刪除needs-lock屬性。把這些行到一個文本文件:

svn propdel svn:needs-lock -R -q "%1" 
svn commit "%1" -m "Removed needs-lock" 

保存爲remove-needs-lock.bat,並添加它的位置到PATH環境變量。然後你可以運行:

remove-needs-lock c:\workingcopyfoldername 

而且,所有文件不再需要鎖定才能編輯。