天天看點

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參數檢視錯誤資訊

繼續閱讀