SVN詳解-linux+windows


Linux:

  svn(subversion)是近年來崛起的版本管理工具,是CVS的接班人。目前,絕大多數開源軟件都使用svn作為代碼版本管理軟件。svn服務器有2種運行方式:獨立服務器和借助apache等web服務器。兩種方式各有利弊。svn存儲版本數據也有2種方式:BDB和FSFS。因為BDB方式在服務器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點。

本文主要介紹SVN獨立服務器的的安裝和簡單配置:
1.安裝(CentOS下yum即可方便的完成安裝)

# yum install subversion

測試安裝是否成功:

# svnserve --version      回車顯示版本說明安裝成功

2.建立版本庫

# mkdir /svndata              創建svn數據目錄(目錄可自行制定)
# svnadmin create /svndata/kuming                  kuming就是版本庫的名字,可以改變!

3.配置svn配置文件(為了方便管理,這里多個庫調用相同的配置文件。)
   1)主配置文件:每個版本庫創建之后都會生成svnserve.conf主配文件

# vim /svndata/kuming/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /svndata/conf/passwd
authz-db = /svndata/conf/authz
realm = kuming

  2)配置用戶

# mkdir /svndata/conf
# vim /svndata/conf/passwd      //svn用戶配置文件
[users]
user1 = password1
user2 = password2
user3 = password3
user4 = password4

  3)權限配置文件

# vim /svndata/conf/authz      //svn權限控制配置文件

 

[groups]    #設置組
group1 = user1,user2  #多用戶用逗號隔開

[/]       #根目錄權限設置(就是“kuming”這個文件夾)
user3 = rw   #用戶1權限是:可讀寫
user4 = r    #用戶2權限是:可讀,不可寫
user =      #什么都沒寫代表沒有任何權限

@group1 = rw  #設置組權限

[kuming:/123]  #設置根目錄下“123”文件夾的權限
#說明“123”這個文件件怎么創建?這是在SVN服務器配置好之后,創建一個權限很高的用戶在客戶端登錄SVN
#然后創建一個文件夾“123”。

4.啟動服務器

# svnserve -d -r /svndata

-d表示以daemon方式(后台運行)運行
-r /svndata指定根目錄是/svndata


5.關閉SVN 服務器

# killall svnserve

6.查看服務

# ps aux | grep svnserve    查看服務,端口:3690

7.SVN客戶端瀏覽方法

客戶端使用的軟件是TortoiseSVN,瀏覽方法:打開版本庫瀏覽器輸入:svn://ip-addr/kuming/文件夾名

 

 

附:下面是隨便折騰一個小腳本用來管理服務器的啟動、重啟、停止等操作

# vim svn
# chmod +x svn
#!/bin/bash
case "$1" in
start)
        svnserve -d -r /svndata
        svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'`
        if [ $svnport -eq 3690 ]
        then
                echo "SVN Server Already Runnning. Port:3690"
        else
                echo "SVN Server Does Not Start"
        fi
;;
reload)
        svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'`
        if [ $svnport -eq 3690 ]
        then
                killall svnserve && svnserve -d -r /svndata
                echo "Reload OK"
        else
                echo "SVN Server Is Not Running"
        fi
;;
stop)
        killall svnserve
        echo "SVN Server Has Been Stopped"
;;
status)
        svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'`
        pid=`ps aux | grep svnserve | grep -v "grep" | awk '{print $2}'`
        if [ $svnport -eq 3690 ]
        then
                echo "SVN Server (pid:$pid) 正在運行..."
        else
                echo "SVN Server 停止運行..."
        fi
;;
*)
        echo "$0: Usage: $0 {start|status|stop|reload}"
        exit 1
;;
esac

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM