SVN服務器從Windows遷移到LInux

一、備份VisualSVN項目

1. 現在要使用Linux作爲svn服務器,之前是在windows Server 2008上的,用的是VisualSVN, 如下圖所示。

clip_image002

2. 現在svn中有一個項目fpp,需要將fpp這個項目導出到linux環境下。運行cmd,輸入命令 svnadmin dump E:\Repositories\fpp > e:\svnbak\fpp.dump將項目導出到e:\svnbak目錄下。運行結果如下:

clip_image004

3. 可見命令會導出每個版本的詳細信息,保證了之前的歷史信息不會丟失。現在我們便得出備份文件fpp.dump,如下:

clip_image006

4. 利用批處理實現項目的批量導出,編寫svnbak.bat, 雙擊運行,會一次性導出所有項目,結果如下圖:

clip_image008

二、上傳備份文件到Linux

1. 利用ftp, ssh等工具將fpp.dump文件傳輸到Linux服務器上,這裏利用直接利用openSSH這個軟件上傳。如圖,文件上傳成功,文件的路徑爲/root/fpp.dump。

clip_image010

三、Linux下SVN的安裝與配置

1. Linux下安裝svn,這裏直接利用yum命令進行安裝。yum install subversion完成subversion的安裝。

2. 建立版本庫目錄svndata。

mkdir /svndata

svnserve -d -r /svndata #啓動svn,設置版本庫目錄爲/svndata

killall svnserve #關閉svn

3. 建立項目庫

svnadmin create /svndata/fpp

4. 配置用戶訪問權限

cd /svndata/fpp/conf

vi svnserve.conf

釋放如下幾行的註釋

anon-access=none

auth-access=write

password-db=passwd

5. 增加訪問用戶,格式爲(username = password),等號兩邊要加空格,否則無效。如下圖,沒有加空格,就一直沒用:

clip_image012

6. svn的命令這裏不作介紹,大家自己去學習使用。

四、導入備份文件

1. 輸入命令:svnadmin load /svndata/fpp < /root/fpp.dump,運行結果如下:

clip_image014

2. 爲了避免逐個導入項目,所以寫了一個shell腳本,進行批量導入,遍歷備份目錄下所有*.dump文件,併產生相應的導入命令,15個項目,花了10分鐘左右完成導入,腳本如下:clip_image016

五、客戶端進行代碼的檢出

1.windows端安裝TortoiseSVN, 右鍵svn checkout

clip_image018

2. 在打開的對話框中,輸入svn庫的地址,確定便可以同步項目。地址如下,ip地址加項目名稱,如圖:

clip_image019

3. svn提示檢出成功,在目錄下可以找到檢出的項目。

clip_image021

4. 對於以前的項目,重定向到新的svn服務器,右鍵->TortoiseSVN->Relocate,在彈出的對話框中填寫新的地址,TortoiseSVN會提示修改成功,之後,就可以使用新的svn了。

clip_image023

clip_image024

5. 如果你是使用eclipse中的subeclipse的插件,首先打開svn資源庫視圖,然後選擇你的項目,右鍵選擇重定向,填入新的svn地址。

clip_image025

6. linux下若使用svn命令的話,形式如下:

svn switch --relocate (Old Repository Root) (New Repository Root)

 

六、Linux服務器端設置svn開機啓動

(1)在Linux服務器跟目錄((/root路徑下))創建一個腳本文件

     #  touch svn.sh

(2) 進入腳本文件

      # vim svn.sh

(3)添加一下內容

    #!/bin/bash
    /usr/bin/svnserve -d -r  /opt/svn/repositories

    解釋一下:

               這裏的svnserve路徑保險起見,最好寫絕對路徑,因爲啓動的時候,環境變量也許沒加載。
絕對路徑怎麼查?

      # which svnserve

(4)改該腳本的執行權限

    # chmod 777 svn.sh

(5)加入自動運行

     # vi /etc/rc.d/rc.local
在末尾添加腳本的路徑:
       /root/svn.sh

(6)重啓Linux服務器,重啓後查看svn服務器是否已經開啓

        #  ps -ef|grep svnserve

     如果顯示以下信息表示svn已經開啓了:

       tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN

 

轉載自 : https://www.cnblogs.com/lidabo/p/4633152.html

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