2014-12-27 151 views
1

我在文件服務器上有一個SVN回購(我知道這不是最佳實踐),並且其中一個最新修訂已損壞。我在本地複製了我的回購,路徑是C:\ SVNLOCAL \ SVNRepos。損壞的提交是r 1070.我做了一個將svnadmin回購到r 1069(svnadmin dump C:\SVNLOCAL\SVNRepos -r 1069 > r1069.dump)並加載(svnadmin load C:\SVNLOCAL\RECOVER < C:\SVNLOCAL\r1069.dump)並將其加載到新路徑的轉儲,但即使在取消選中停止重命名時,它也不會顯示歷史記錄。SVN轉儲/重新加載具有歷史記錄的特定版本

有兩個問題,我可以在revs文件夾 - SVNRepos \ db \ revs \ 1 \ 1070+中刪除1069後的任何轉速。我認爲這不是那麼簡單,我需要做轉儲和重新加載。如果是這樣,我該如何做到這一點,同時保持歷史不變。

基本上,我只是想恢復到r1069,但如果我試圖做它反對回購它說1070有一個意外的文件結束並停止死亡。我想轉儲和裝載是我唯一的選擇。

回答

1

您需要使用兩(2)個版本參數(開始和結束脩訂版)。 轉儲命令將轉儲所有路徑在開始修訂並將下一個修訂(直到結束脩訂)存儲爲增量。

正確的命令應該是:

svnadmin dump C:\SVNLOCAL\SVNRepos -r 0:1069 >r1069.dump 

你不應該從你的SVN回購刪除最後一個版本,因爲你可能會損壞庫。如果你有一個svn 1.8.x版本庫,你至少會銷燬sqllite-cache。

嘗試始終通過轉儲文件進行操作。

+0

彼得,謝謝。我想通過直接更改文件來炸燬我的回購,但如此令人沮喪地看到,一個損壞的提交修訂會搞砸了。我正在嘗試您的修復程序,並在完成後加載它。如果我的回購完整到1069,我會標記你的答案 – thekonger 2014-12-27 16:46:01

相關問題