公司開發伺服器從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參數檢視錯誤資訊