2008-10-27 104 views
6

我是SVN的新手,並大量使用外部屬性。我有一個位於我的PC上的存儲庫,外部屬性的名稱中有一個硬編碼的'localhost',現在這給我帶來了問題。例如:Subversion外部問題

/project1/trunk 
/shared/trunk 

project1/trunk依賴於共享文件夾,以便具有SVN的svn:externals屬性://本地主機/共享/中繼線。這與TortoiseSVN正常工作,我可以結帳project1/trunk和我給了一份shared/trunk副本。

現在我已經將存儲庫移動到另一臺服務器,並且外部鏈接不再工作,原因很明顯(TortoiseSVN試圖結帳出svn://localhost/shared/trunk不再存在)。

所以我需要更新所有的外部 - 但我不想硬編碼任何機器名稱 - 那麼我該如何做這項工作?請記住,存儲庫可能會在某個時候再次移動。圍繞我穿過^/語法來到SVN手冊中挖掘,所以我嘗試了以下內容:

svn:externals shared ^/shared/trunk 

這是公認的,但是當我嘗試和我的電腦上籤的project1副本我得到以下錯誤:

Unrecognized format for the relative external URL 'shared'. 
Check the path and/or URL you've entered. 

除非我在的外部硬編碼庫機器名稱我不能做這項工作 - 這似乎是一個黑色的藝術,所以任何建議將受到歡迎。

回答

9

您引用的^ /語法在SVN 1.5中是新的,因此您可能會使用不了解該語法的客戶端和/或服務器的舊版本。另外,爲了在1.5中支持新的外部語法,他們在外部定義中改變了參數的順序。我想你首先需要路徑,然後是文件夾名稱才能顯示在下面。詳情請見docs

+2

路徑第一個然後文件夾名稱 - 做的伎倆,謝謝! – Rob 2008-10-27 14:42:17