天天看點

SVN伺服器搭建詳解

1 SVN簡介:

Subversion是一款自由開放的版本控制軟體。Subversion可以管理檔案、檔案夾以及記錄它們的修改狀

況。Subversion常用來幫助我們管理軟體開發的源代碼或是公司手冊文檔。

Subversion通過将文檔導入至版本庫中進行管理,版本庫類似于檔案伺服器,但比檔案伺服器更強大的

是它可以記錄你每一次對檔案或目錄的修改狀況,并提供還原資料至老版本的功能。

2 SVN三種通路模式:

用戶端通路服務端時可以通過svnserve通路、svnserver+ssh通路、Apache間接通路。

1.svnserve是一個小巧、輕便的伺服器程式,通過它用戶端可以使用Subversion專有的協定進行通路,

其特點是設定簡單。

2.由于svnserve本身并不提供加密通訊的功能,是以如果你需要更安全的連接配接,可以使用svnserve+ssh

的方式,通過連接配接SSH伺服器建立在SSH隧道,在通過SSH調用svnserve程式。

3.Apache通過mod_dav_svn通路版本庫,使得客戶可以通過通路Apache取得版本庫資料進行版本控制。

3 svnserver 示例:

安裝Subversion

    [root@localhost ~]# yum -y install subversion

建立版本庫

     [root@localhost ~]# mkdir /var/svn

     [root@localhost ~]# svnadmin create /var/svn/project1

導入資料到版本庫

     [root@localhost ~]# svn import /java  file:#/var/svn/project1 -m "Initial DATA"

      将java目錄中的檔案導入版本庫,使其版本化。-m後跟說明性字元串,可任意輸入

    [root@localhost ~]# svn list file:#/var/svn/project1/   #列出版本庫中的檔案清單

    [root@localhost ~]# mkdir /test; cd  /test          #建立本地拷貝資料目錄

将版本庫中檔案拷貝至本地

    [root@localhost ~]# svn checkout file:#/var/svn/project1 

在本機儲存一份本地拷貝後,以後即就當作普通檔案對其進行修改,修改完成後随時可以上傳回版本庫,更新版本庫  

    [root@localhost ~]# svn commit -m "JAVA"

守護程序啟動svnserve服務    

    [root@localhost ~]# svnserve -d

用戶端需要指定據對路徑通路版本庫如svn:#centos.example.com/var/svn/project1

    [root@localhost ~]# svnserve -d -r /var/svn/project1      

限制僅釋出project1一個版本庫至網絡

     用戶端可以使用相對路徑通路版本庫如svn:#centos.example.com/project1

svnserve.conf中定義的認證與授權政策實作權限控制

[root@localhost ~]# vim /var/svn/project1/conf/svnserve.conf

[general] 

# anon-access = read       #匿名使用者權限為隻讀,此處可以設定為none,read,write 

# auth-access = write      #經過認證的使用者權限為可寫 

# password-db = passwd     #指定使用者存放使用者名與密碼的檔案,該檔案位于conf目錄下名為passwd 

# authzauthz-db = authz   #指定基于版本庫路徑的通路控制(可以對檔案或目錄設定權限) 

# real = My First Repository  #設定版本庫域,如果兩個版本庫的認證域相同,他們将使用相同的密碼資料 

修改passwd與authz檔案:

[root@localhost ~]# vim /var/svn/project1/conf/passwd

[users] 

# harry = harryssecret      #使用者名為harry密碼為harryssecret 

# sally = sallyssecret      #使用者名為sally密碼為sallyssecret 

[root@localhost ~]# cim /var/svn/project1/conf/authz

[groups] 

admins = harry,sally        #定義組,組成員有harry與sally 

[/]                   #對版本庫根路徑設定權限,可以設定為你需要控制的路徑 

@admins = rw             #admins組中的使用者使用者可讀,可寫權限 

* = r                 #其他所有人隻讀,權限可以設定為隻讀('r'),讀寫('rw'),無權限('')

用戶端我們使用Windows下的TortoiseSVN圖形工具

安裝好後,右鍵 > SVN 檢出 > 版本庫URL:svn:#192.168.1.6/java 

填好使用者名密碼,檢出到本地 

本文轉自super李導51CTO部落格,原文連結:http://blog.51cto.com/superleedo/1888804 ,如需轉載請自行聯系原作者