svn dump 失敗後的處理

kidking2010發表於2011-12-20
http://blog.sonitech.org/2010/04/15/svn-dump-%E5%A4%B1%E8%B4%A5%E5%90%8E%E7%9A%84%E5%A4%84%E7%90%86/

svn dump 失敗後的處理

本文由 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:

svn export -q  -r10000

2. dump 並過濾掉與壞掉的 project(引數參考:):

svnadmin dump --incremental -r 0:10000 /var/lib/subversion/repositories |svndumpfilter exclude /projects/applications/project_name --preserve-revprops > repositories_0-10000.dump

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 解決了這個頭痛的問題。

tags: subversion, svn, svndump, svndumpfilter
posted in Unix Linux by Sonic


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23141985/viewspace-713630/,如需轉載,請註明出處,否則將追究法律責任。

相關文章