2
我有一個Subversion版本庫,裏面有幾個項目。我希望「切斷」一個或多個這些項目,並將它們移到自己的存儲庫,理想情況下具有完全保真度(即保持所有版本歷史記錄不變)。切片Subversion版本庫的一部分?
這甚至可能嗎?如果是這樣,技術是什麼?
編輯/澄清:我瞭解分支和標籤。這不是我要問的。我想採用現有的存儲庫並將其拆分爲幾個較小的存儲庫,可能位於不同的物理介質上。
我有一個Subversion版本庫,裏面有幾個項目。我希望「切斷」一個或多個這些項目,並將它們移到自己的存儲庫,理想情況下具有完全保真度(即保持所有版本歷史記錄不變)。切片Subversion版本庫的一部分?
這甚至可能嗎?如果是這樣,技術是什麼?
編輯/澄清:我瞭解分支和標籤。這不是我要問的。我想採用現有的存儲庫並將其拆分爲幾個較小的存儲庫,可能位於不同的物理介質上。
首先得到一個到你的SVN倉庫的日期轉儲:
svnadmin dump repo/
接下來,過濾庫,使用類似
svndumpfilter include --drop-empty-revs --renumber-revs trunk/myProj1 trunk/myProj2
然後,創建新的回購,並添加行李箱,標籤和分支目錄(在沒有這三個目錄的情況下,此步驟將失敗):
svnadmin create newRepo
svn co file:///tmp/newRepo newRepo-checkout
svn mkdir newRepo-checkout/trunk/ newRepo-checkout/branches/ newRepo-checkout/tags
svn commit -m "Core directory structures created" newRepo-checkout/
有了這3個目錄,一個現在可以加載轉儲:
svnadmin load newRepo
一旦加載完成後,就可以開始使用新的回購!
幾個教程鏈接:
http://grumbel.blogspot.com/2008/09/splitting-svn-repository.html
http://2tbsp.com/node/88
是的,但我不認爲你已經理解了問題。你的例子展示瞭如何在同一個repository_中創建一個分支,這根本不是我所要求的。我想採取現有的存儲庫,並將其拆分爲幾個較小的存儲庫(可能位於物理不同的介質上)。 –
嗯,在這種情況下,您希望獲得repo的轉儲,然後使用svndumpfilter僅從repo中獲取所需內容,然後使用新的分割repo使用svn load來加載過濾的轉儲。這裏有一些很好的教程:http://grumbel.blogspot.com/2008/09/splitting-svn-repository.html,http://mikemason.ca/blog/2005/10/splitting-merging-and-organizing- a-subversion-repository/ – chown
已更新的答案提供了步驟 – chown