本文由 svndump 失敗而引出:
在 SVN Server 中有一個版本 dump 失敗,後來嘗試使用 fsfsverify()也沒有修復成功,與之相關聯的版本同樣 dump 出錯,最後用 svndumpfilter 解決。
思路:
1. 儘可能 export 出受損壞的 Project 的最新版本,或者備份本地最新的程式碼。(這次壞掉的版本是很早之前的版本,新程式碼已經與之沒有任何關係,只是 dump 校驗時失敗)
2. 在 dump 時過濾掉壞版本所在的 project,然後重建 SVN Server,load 之前 dump 出的檔案。
3. load 後把之前 export 出的 Project 重新 add 進 SVN 庫中。
相關的操作:
1. export 出需要的 Project,最新版本號 10000:
2. dump 並過濾掉與壞掉的 project(引數參考:):
3. 匯入到新的版本庫中:
svnadmin load /var/lib/subversion/new_repositories < repositories_0-10000.dump
4. 最後重新將 /projects/applications/project_name add 進 SVN Server 即可。
現在看起來很簡單的步驟就可以搞定,但是在處理的時候磕磕絆絆很長時間才解決,開始的時候總想修復壞掉的版本,嘗試了很多歪門邪道的辦法,甚至去手動修改過 svn revs 中的 md5,無奈 subversion 實在太複雜,只能用這個辦法解決,最後感謝 的提醒,用 svndumpfilter 解決了這個頭痛的問題。