一千萬個為什麽

搜索

只遷移具有讀訪問權限的倉庫的工具?

我的學校服務器上有一個subversion存儲庫,來自我的朋友和我上一學期的工作。我們想要對項目進行修改並使其更像是一個項目組合項目,我不太確定回購將在學校服務器上保持完好(他們通常會在幾個學期後擦除它)。雖然我已發送電子郵件以查看是否可以獲得回購,但我無權轉儲回購,這將是最好的解決方案。

我嘗試過svnsync,但學校服務器不支持重播命令(可能已關閉),所以這對我不起作用。

現在,從理論上講,不可能(手動或以編程方式)檢出存儲庫的每個版本並將其檢入我們自己的服務器上的新存儲庫中嗎?我認為它會起作用 - 我們只有3個人,並且沒有我們不得不擔心的工作副本沖突,只需要回復一下repo中的所有歷史記錄,以防我們需要返回並查看它。

話雖如此,在我通過編寫腳本來重新發明輪子之前 - 這樣的事情是否已經存在?我必須要知道已經有了一個工具來完成它,或者有人寫了一個腳本來完成它。

最佳答案

我嘗試過svnsync,但學校服務器不支持重播   命令(可能已關閉),這對我不起作用。

I guess that svnsync didn't work then because of some minor issue; neither svnsync nor svnrdump require any server-side modifications to work!


如果您通過HTTP(S)或 svn(+ ssh):// 至少具有對Subversion存儲庫的只讀訪問權限,那麽您肯定可以使用 svnsync 獲取完整的修訂歷史記錄或 svnrdump 工具。

svnrdump approach.

只需運行命令並等待它完成:

svnrdump URL-TO-ORIGINAL-REPO > repo.dump

在結果中,您將獲得包含完整更改歷史記錄的repo.dump文件。您可以稍後使用 svnadmin load 命令將文件加載到空存儲庫。

svnsync approach.

所有步驟都應在您的(本地)機器上執行:

  1. Create new repository: svnadmin create newrepo,

  2. Allow to change revision (unversioned) properties of the new repository:

    echo exit 0 > myrepo\hooks\pre-revprop-change.bat

  3. svnsync init file:///C:\Repositories\newrepo https://URL-TO-ORIGINAL-REPO

  4. svnsync sync file:///C:\Repositories\newrepo https://URL-TO-ORIGINAL-REPO

轉載註明原文: 只遷移具有讀訪問權限的倉庫的工具?