VisualSVN Server倉庫遷移到Linux(包含所有版本, 權限,用戶信息)
公司開發服務器從Windows換成CentOS,所以要把原服務都轉移到Linux下,MySQL、SMB的遷移都很順利,但是SVN的轉移卻遇到了些問題,花費了三天時間,走了不少彎路,現在總算解決了SVN遷移問題,記錄下:
在Windows上我們是用VisualSVN Server作SVN服務的,Linux上是編譯安裝的subversion 1.7.7。
Windows 的SVN倉庫在E:\SVNRepositories,Linux在 /data/svnrepos
第1步,導出VisualSVN倉庫:svnadmin dump E:\SVNRepositories\repo1 E:\repo1.dump
第2步,在Linux端create相同名稱的倉庫: svnadmin create /data/svnrepos/repo1
第3步,在Linux端load Windows導出的庫:
cd /data/svnrepos
svnadmin load repo1 < repo1.dump
到此為止,repo1庫就導入到Linux的subversion中了,但是用戶信息、權限信息還沒導入(這也是我折騰很久的問題),繼續:
第4步,把E:\SVNRepositories\authz 上傳到 /data/svnrepos
把E:\SVNRepositories\htpasswd 復制為 passwd 并修改后上傳到 /data/svnrepos
修改后的passwd格式如下(其實就是用戶名 = 密碼):
[users]
user1 = 123
user2 = 456
第5步,修改倉庫的/conf/svnserve.conf,使它指向第4步上傳的那兩個文件:
[general]
anon-access = none
auth-access = write
password-db = ../../passwd
authz-db = ../../authz
到這里就完成了,用命令 svnserve -d -r /data/svnrepos/ 啟動subversion服務。
- 這樣做還有個問題是passwd文件原密碼信息全丟失了,知道解決方法的請留言告訴我:)
- 我只用了repo1這個倉庫,如果有多個倉庫一樣步驟,分別導出導入,并修改倉庫的/conf/svnserve.conf
- 如果按照上述方法操作還是不行,啟動svnserve時用 --log-file ./log.txt參數查看錯誤信息