2011-05-02 41 views
0

我們擁有包含多個項目的大型SVN存儲庫,我們需要將其中一個移動到另一個SVN存儲庫。如何將項目從一個SVN存儲庫移動到另一個時,svnadmin轉儲沒有幫助

做到這一點的直接方式(通過svnadmin dump轉儲數據庫,通過svndumpfilter過濾並將其重新加載到新存儲庫不起作用,因爲存儲庫太大(轉儲文件大約500GB)和svndumpfilter和其他類似計劃永遠不會結束

我用snvsync複製的特定項目,以新的存儲庫,它工作正常,除了2分:。

  • 我讀通過svnsync的人口信息庫旨在爲只讀我試圖改變這個庫(在我刪除了阻止我這樣做的鉤子後),它似乎工作。不要確信它將來不會造成麻煩。
  • 最終的文件夾結構,我在新的版本庫得到的是:

    /回購/主幹/了projectA/

當我嘗試分支(複製)了projectA到/回購/分支機構/了projectA我收到一個錯誤: 「儲存庫永久移動到http:/ host/repos /;請重新定位」

任何嘗試在與trunk相同的級別上創建文件夾都會產生相同的錯誤。 在我想要得到像「strandard」文件夾sturucture結束:

/repos/projectA/trunk 
/repos/projectA/branches 
/repos/projectA/tags 

,但沒有找到一個方法來克服上述錯誤。

回答

3

svnsync拷貝應該是隻讀的,原因很明顯 - 如果你承諾它,然後繼續從原來的同步,副本將不會是相同的。當你嘗試同步它時,它應該會出錯,但這是唯一的原因。沒有技術上的理由說明它應該是RO,事實上,一旦你有一個副本和你的原始模具,它的設計是一個相同的副本,你可以開始使用它作爲備份替換。

您使用它的問題是因爲您仍在使用原始工作副本來引用原始回購。您需要刪除WC並重新簽出,或者使用svn switch --relocate命令告訴它存儲庫已移動。我不明白你如何使用svnsync從你原來的repo獲得不同的佈局(除非你的意思是你想在你同步它之後改變佈局 - 你仍然可以轉儲,過濾和加載小回購到新的)

你試過rsvndump它允許你轉儲部分存儲庫。

+0

我不打算重新同步reposiory。我正在尋找一種方法將庫的一部分移至新的庫。一旦完成,舊版本庫中的代碼將不會再被更改/使用。我通過刪除對原始文件的引用來修改複製的版本庫,並且它工作正常。但是,當我試圖在與trunk相同級別的新存儲庫中創建一個新文件夾時,我得到「永久刪除301錯誤」。我想不知怎的,它可能與apache配置有關,儘管新存儲庫webdav的配置方式與舊存儲庫相同。 – Arkady 2011-05-04 10:02:31

相關問題