2012-05-08 75 views
3

我目前有一個羣組subversion版本庫,其中有多年的歷史記錄。 Corp從現在開始主張我們的顛覆。我想知道什麼是將我們的資源庫添加/導入/合併到Corps存儲庫的最佳方式。我想保留歷史記錄,但我不介意我是否放棄了額外的道具,例如用戶名製作更改爲a)他們不映射到公司的用戶名和b)我沒有管理員訪問他們的服務器,並且不能添加那些鉤子。 Corp的存儲庫已經有很多東西了 - 所以修訂版的號碼將不再符合 - 我不介意。只是重要的是不要放棄更改的細節(顯然是他們的順序)。我顯然有管理員訪問我的存儲庫 - 但不是軍團庫。將我的Subversion存儲庫添加到「corp's」subversion版本庫保留更改歷史記錄

感謝您的建議

+1

我不知道我明白目標存儲庫是什麼。它是爲您創建的空回購,還是回購現有內容,並且想要將您加載到子目錄中? –

+1

好的問題 - 謝謝你有機會澄清 - 它的第二個 - 現有的回購與現有的內容,我想加載到我的子目錄 – nwaltham

+0

這裏有一個大問題(這可能或可能不重要給你)。導入存儲庫的過程將更改原始存儲庫數據的所有版本號以及導入的內容。如果您或公司使用修訂號碼用於任何目的(例如在錯誤跟蹤中),那麼這可能是一個交易斷路器。 –

回答

1

svnadmin dumpsvnadmin loadare your friends。不過,你必須要求他們的管理員爲你運行svnadmin load

+0

謝謝 - 但我正在尋找一些我可以做的事情,而不涉及管理員(忙碌的人!)。如果可能的話,獎勵將是增量更新,直到我讓每個人都移過來。 – nwaltham

+3

@ user859955 - 「不涉及管理員(忙碌的人!)」 - 他們忙什麼?這是他們的工作! (首先寫了「他們的怪異工作」,但後來認爲它更好:))。 –

+0

你也許可以用svnsync做到這一點,但你也需要管理員干預。更好的是要問。問題通常是像這樣的開發者請求獲得比用戶請求更低的管理優先級: -/ – Rup

2

我從來沒有用它自己,但它可能是svnrdump是你唯一的機會:

在Subversion 1.7,svnrdump加入了一套股票顛覆工具。 它提供了相當專業的功能,本質上作爲svnadmin的轉儲的 網絡感知版本的svnadmin負荷命令 這是我們在深入「版本庫數據使用svnadmin的 遷移」一節討論。 svnrdump轉儲將從遠程存儲庫生成一個轉儲流 ,將其轉化爲標準輸出; svnrdump加載 將從標準輸入中讀取轉儲流並將其加載到遠程 存儲庫中。使用svnrdump,您可以使用svnadmin轉儲生成增量轉儲,就像 一樣。您甚至可以轉儲 存儲庫的子樹 - svnadmin轉儲無法執行的操作。

如果它的實際工作對你來說,該過程將是:

  1. 源回購作出正確svn mv把一切都變成子目錄。在源子目錄上運行svnrdump dump
  2. 將以前的轉儲加載到目標回購中。

什麼可以出錯?最有可能的是,這兩個回購中都有包含共同路徑的歷史。我並不知道Subversion會做什麼。所以做廣泛的測試和大量的備份:)

+0

感謝您的建議。不幸的是,它看起來像需要管理員訪問和/或屬性更改掛鉤: > svnrdump:warning:W200007:目標服務器不支持原子修訂版本屬性編輯;考慮將其升級到1.7。 > svnrdump:E175002:DAV請求失敗;可能是存儲庫的pre-revprop-change鉤子失敗或不存在 > svnrdump:E175008:至少一個屬性更改失敗;版本庫不變 > svnrdump:E175002:設置屬性'rdump-lock'時出錯: 無法刪除屬性 – nwaltham

相關問題