svnadmin: E125005: Invalid property value found in dumpstream

寫這篇日誌真是帶着情緒。用中文搜索這個錯誤出來的內容完全千篇一律,根本就沒有給出具體的解法。很懷疑那些轉載的人是真的驗證過的嗎? 幸虧還有biying的英文搜索。

http://stackoverflow.com/questions/10279222/how-can-i-fix-the-svn-import-line-endings-error/10280315


出現這個錯誤的原因是工程師在輸入日誌時回車被記錄的是(Control+M / ^M) 。在SVN老版本升級成1.6以上的新版本時特別常見。規避方案是使用svnsync

我要做的操作是把老的版本庫遷移的新的高版本的服務器。所以以下操作是在新的服務器上執行的:


1. 創建版本庫,忽略掉EOL錯誤

svnadmin create repo
svnadmin load repo < archive.svn --bypass-prop-validation

2.創建中間過渡的修復版本庫

svnadmin create repo-fixed

svnsync 要求使用 repo-fixed/hooks/pre-revprop-change

#!/bin/sh
exit 0

pre-revprop-change程序的內容如上就可以。記住添加可執行權限

3.初始化svnsync的目標配置庫,即repo-fixed:

svnsync init file:///path/to/repo-fixed file:///path/to/repo

4. 拷貝整個存儲庫

svnsync sync file:///path/to/repo-fixed

5.dump這個過渡庫repo-fixed

svnadmin dump repo-fixed > archive-fixed.svn

你現在得到的 archive-fixed.svn, 是和 archive.svn 一樣的庫,只是 EOLs 的錯誤都已經被修復了. 之後在新的服務器上導入這個dump文件就可以了

(可選的) 你可以刪除這個svnsync 產生的臨時庫:

rm -rf repo-fixed

如果你是本機的升級,導入新的dump文件可能會得到如下錯誤: Repository UUID does not match expected UUID. 你可以使用命令 svnadmin setuuid ... 來修改成原先的UUID。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章