2012-07-19 66 views
3

我當前的存儲庫是:/var/www/svn/project .all我的文件在項目folder.it中沒有樹幹,分支,標籤結構。現在我創建了一個新項目,名稱爲「/ var/www/svn/projectnew」帶有主幹,分支,標籤。我把「/ var/www/svn/project」轉儲並加載到「/ var/www/svn/projectnew/trunck」,並在「/ var/www/svn/projectnew /分行/ site1「從主幹。如何更改SVN存儲庫以使用trunk/branches/tags結構並將工作副本切換到它

當前我的工作副本指向「/ var/www/svn/project」。我試圖從 「/無功/網絡/ SVN /項目」 切換我的工作拷貝到「/無功/網絡/ SVN/projectnew /分支機構/ site1的」,但它說,

庫UUID「d3f06af7-C344 -2d45-b1bd-7799e0e99d7a'與預期的UID'f5f9f6ac-3f50-7e4d-a9d4-0bc9a9b443b8'不匹配。

幫我解釋一下如何去做這件事?

+0

怎麼做的,你的工具轉儲項目?如果您只是複製粘貼,那麼您的存儲庫將指向舊項目。您需要先刪除SVN綁定,然後執行該操作,您需要導出代碼,如果您使用的是Tortoise SVN,那麼這很容易。 – pramodtech 2012-07-19 05:52:32

+0

我使用下面的命令來執行此操作,$ svnadmin dump/var/www/svn/project> project.dump,$ svnadmin load/var/www/svn/projectnew/trunck --parent-dir trunk user1536854 2012-07-19 08:58:49

回答

6

原答覆:

有兩件事情可以做在這裏 - 一個是把文件db/uuid從舊服務器複製到新的一個,如果你只是轉移SVN倉庫到新的機器和你計劃關閉舊的。另一件事取決於你使用的SVN版本。如果您使用的是1.7,則使用svn relocate(請參閱docs),或者對於較早的客戶端,請使用svn switch命令的--relocate選項,該命令適用於此場景。

編輯:

我誤解了 - 要重新創建與主幹/分支/標籤結構的存儲庫。在這種情況下,轉儲和重新加載項目將無濟於事,因爲它不會奇蹟般地創建新結構 - 它只會重新創建已有的結構。您可以輕鬆地在存儲庫瀏覽器(如果您使用的是TortoiseSVN)或直接從您的工作副本中創建新結構。如果你是從命令行執行的話,語法就會像這樣,這取決於確切的目錄結構。將http:.../替換爲svn服務器的地址。噢,先備份倉庫!

# check out top-level directory 
svn co http://.../ 
# make new trunk dir and move all contents to it -- note spelling of 'trunk' 
mkdir trunk 
svn add trunk 
svn mv * trunk 

# now create tags and branches 
mkdir tags 
mkdir branches 
svn add trunk tags branches 

svn commit -m "Created new repository layout" 

現在你應該需要做的,在切換現有的工作副本是:

svn switch http://.../project http://.../trunk/project 
+0

我沒有使用新的服務器。 (舊的:/ var/www/svn/project,新的:/ var/www/svn/projectnew /)的舊版本庫和新版本庫。轉讓存儲庫的原因是我的舊回購沒有樹幹,分支機構structure.so,只有創建新的存儲庫與樹幹,分支機構結構,並試圖切換我的WC分支在新回購。 可以做到這一點嗎? – user1536854 2012-07-20 06:34:03

+0

謝謝。以上步驟用於更改當前svn結構和子文件夾之間的切換。我已檢查過它工作正常。 如果我想在新的存儲庫中執行此操作,有可能嗎? – user1536854 2012-07-20 11:34:38

+0

您可以在新的存儲庫中執行此操作,但我不明白爲什麼您需要這樣做,因爲您可以在原始存儲庫中創建所需的結構。 – 2012-07-20 14:30:54

0

另一種方式是保持歷史,因爲它是和切換到新的結構,在新的起點修訂。在這種情況下,您不需要使用存儲庫的轉儲/加載操作。

  1. 「SVN刪除」一切從庫根
  2. 創建主幹/分支/標籤結構
  3. 「SVN複製」信息庫內容從版本刪除之前幹路
相關問題