CentOS6下SVN服務器的搭建


一、SVN服務器端的安裝

1、檢查已安裝版本

#檢查是否安裝了低版本的SVN

[root@localhost /]#rpm -qa subversion

#如果存儲舊版本,卸載舊版本SVN

[root@localhost modules]#yum removesubversion

 

2、安裝SVN

[root@localhost modules]#yum -y installsubversion

 

3、驗證安裝

檢驗已經安裝的SVN版本信息

[root@localhost modules]# svnserve--version

svnserve,版本 1.6.11(r934486)

編譯於 Jun 23 2012,00:44:03

版權所有 (C) 2000-2009CollabNet。

Subversion 是開放源代碼軟件,請參閱http://subversion.tigris.org/ 站點。

此產品包含由 CollabNet(http://www.Collab.Net/)開發的軟件。

列版本庫后端(FS) 模塊可用:

* fs_base : 模塊只能操作BDB版本庫。

* fs_fs : 模塊與文本文件(FSFS)版本庫一起工作。

Cyrus SASL 認證可用。

4、代碼庫創建

SVN軟件安裝完成后還需要建立SVN庫

[root@localhost modules]#mkdir -p/opt/svn/                    #創建SVN根目錄

[root@localhost modules]#svnadmin create/opt/svn/repo         #創建repo測試庫

執行上面的命令后,自動建立repo測試庫,查看/opt/svn/repo 文件夾發現包含了conf, db,format,hooks, locks, README.txt等文件,說明一個SVN庫已經建立。

 

5、配置代碼庫

進入上面生成的文件夾conf下,進行配置

[root@localhost modules]#cd/opt/svn/repo/conf

(1)用戶密碼passwd配置

[root@localhost password]#cd/opt/svn/repo/conf

[root@admin conf]#vim passwd

修改passwd為以下內容:

[users]

# harry = harryssecret

# sally = sallyssecret

hello = 123

aaa = 123

www = 123

用戶名=密碼

 

這樣我們就建立了hello、aaa、www等用戶,密碼均為123密碼

(2)權限控制authz配置

[root@admin conf]#vim authz

目的是設置哪些用戶可以訪問哪些目錄,向authz文件追加以下內容:

[groups]            #組

admin = hello,www   #創建一個admin組,將用戶加入到組

[/]                 #根目錄權限設置(就是“svn”這個文件夾)

aaa = rw            #aaa對svn下的所有版本庫有讀寫權限

[repo:/]            #repo:/,表示對repo版本庫下的所有資源設置權限

@admin = rw         #admin組的用戶對repo版本庫有讀寫權限

[repo2:/occi], ,表示對版本庫repo2中的occi項目設置權限

[repo2:/occi/aaa], ,表示對版本庫2中的occi項目的aaa目錄設置權限  權限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。權限可以是w、r、wr和空,空表示沒有任何權限。

(3)服務svnserve.conf配置

[root@admin conf]#vim svnserve.conf

追加以下內容:

[general]

#匿名訪問的權限,可以是read,write,none,默認為read

anon-access = none

#使授權用戶有寫權限

auth-access = write

#密碼數據庫的路徑

password-db = passwd

#訪問控制文件

authz-db = authz

#認證命名空間,subversion會在認證提示里顯示,並且作為憑證緩存的關鍵字

realm = /opt/svn/repo

(4)關閉防護牆

[root@admin conf] #service iptables stop   //即時生效,重啟后失效 

[root@admin conf] # chkconfig iptables off  //重啟后生效

(5)啟動SVN

svnserve -d -r /opt/svn/         #指定SVN根目錄

(6)查看SVN進程

[root@admin conf] #ps -ef|grep svnserve

(7)檢測SVN 端口

[root@localhost conf]#netstat -ln |grep3690

tcp 0  0 0.0.0.0:3690    0.0.0.0:*     LISTEN

(8)停止重啟SVN

[root@localhost password]# kill allsvnserve            //停止

[root@localhost password]# svnserve -d -r/opt/svn/repo  // 啟動

如果已經有svn在運行,可以換一個端口運行

svnserve -d -r /opt/svn/ --listen-port 3391

(9)使用checkout導出文件

[root@localhost tang]# svn checkout svn://127.0.0.1/repo    //本機測試

 

二、SVN客戶端的安裝

1、檢查已安裝版本

#檢查是否安裝了低版本的SVN

[root@localhost /]#rpm -qa subversion

#如果存儲舊版本,卸載舊版本SVN

[root@localhost modules]#yum removesubversion

2、安裝SVN

[root@localhost modules]#yum installsubversion

 

3、驗證安裝

檢驗已經安裝的SVN版本信息

[root@localhost modules]# svnserve--version

svnserve,版本 1.6.11 (r934486)

編譯於 Jun 23 2012,00:44:03

版權所有 (C) 2000-2009 CollabNet。

Subversion 是開放源代碼軟件,請參閱http://subversion.tigris.org/ 站點。

此產品包含由 CollabNet(http://www.Collab.Net/) 開發的軟件。

下列版本庫后端(FS) 模塊可用:

 

* fs_base : 模塊只能操作BDB版本庫。

* fs_fs : 模塊與文本文件(FSFS)版本庫一起工作。

Cyrus SASL 認證可用。

 

4、SVN客戶端下載文件

[root@localhost ~]# mkdir /svn

[root@localhost ~]# cd /svn/        #將svn服務上提取的文件放在此目錄下

[root@localhost svn]# svn checkout svn://192.168.233.203/repo    #svn服務器地址

輸入用戶名密碼:hello/123

 

注:可以使用帶用戶名和密碼的訪問:

svn co --username hello --password123svn://192.168.233.203/repo

 

5、SVN版本庫更新

svn up /svn/repo

上傳文件到服務器

[root@localhost ]# touch/svn/repo/test.php        #所有的動作必須在repo版本庫中完成

[root@localhost ]# svn add /svn/repo/test.php      #上傳test.php文件到svn服務器

6、刪除服務器上的文件

[root@localhost ]# svn rm/svn/repo/test.php--force

7、查看版本庫內容

[root@localhost ~]# svn list /svn/repo/

 

三、命令說明

1、創建版本庫:

終端輸入:svnadmin create [路徑]

該路徑可以是相對路徑,例如,當前在home/user/svn/目錄下,輸入svnadmin create myproject,則該版本庫會被創建在home/user/svn/目錄下,新建一個文件夾名為myproject,其中便是版本庫的文件了。

 

2、將文件導入版本庫:

終端輸入:svn import [源路徑] [目標版本庫路徑] -m [日志信息]

源路徑可以是相對路徑,導入時會遞歸導入源路徑下的所有文件和文件夾,目標版本庫路徑需要絕對目錄(反正我試驗是這樣的),例如版本庫的目錄是:home/user/svn/myproject/。則應該這樣寫:file:///home/user/svn/myproject/

例如將當前目錄導入版本庫myproject:

svn import .file:///home/user/svn/myproject -m"導入文件"

 

3、從版本庫導出:

導入后原文件並未被納入版本管理,若想獲得受版本控制的文件,就需要從版本庫導出

終端輸入:svn co [版本庫路徑]

例如將myproject庫中的文件導出到當前目錄:svn co file:///home/user/svn/myproject .


免責聲明!

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



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