linux(centeros)svn的安裝

SVN

linux搭建svn服務器
參考:http://www.cnblogs.com/chaichuan/p/3758173.html
Subversion(SVN) 是一個開源的版本控制系統, 也就是說 Subversion 管理隨着時間改變的數據。 這些數據放置在一箇中央資料檔案庫 (repository) 中。 這個檔案庫很像一個普通的文件服務器, 不過它會記住每一次文件的變更。 這樣你就能夠把檔案恢復到舊的版本, 或是瀏覽文件的變更歷史。html


SVN中的一些概念

(1). repository(源代碼庫)

       源代碼統一存放的地方

(2). Checkout (提取)

       下載代碼,客戶端經過checkout從服務器(Subversion)端下載源代碼

(3). Commit (提交)

       從服務器下載的代碼,若是作了變動則須要提交到服務器端

(4). Update (更新)

       本地已經checkout了一份代碼,若是別人對代碼作了更改而且已經提交,那麼update能夠更新別人更改後的代碼,通常在提交代碼前都須要更新一下代碼,防止本身的代碼覆蓋了別人更改了的代碼
       
SVN管理源代碼是以行爲單位的,若是兩個程序員修改的不是同一行代碼,SVN都會自動合併兩種修改。若是是同一行,SVN會提示文件Confict, 衝突,若是發生衝突則須要手動的解決衝突,切不可直接提交。


windows經常使用的客戶端軟件:TortoiseSVN

SVN 服務器搭建(centeros linux)linux

yum install -y subversion

或者程序員

yum -y install svn

驗證是否安裝成功apache

svnserve --version

建立SVN 版本庫windows

mkdir svn
svnadmin create svn/rep01

rep01爲版本庫的名稱,rep01的結構以下 bash

$ ls svn/rep01/
conf  db  format  hooks  locks  README.txt

svn配置文件服務器

$ ls svn/rep01/conf/
authz  passwd  svnserve.conf

(1)svnserve.conf:  svn服務配置文件下。
(2)passwd: 用戶名口令文件。
(3)authz: 權限配置文件。

svnserve.conf 文件, 該文件配置項分爲如下5項:
anon-access: 控制非鑑權用戶訪問版本庫的權限。
auth-access:  控制鑑權用戶訪問版本庫的權限。
password-db: 指定用戶名口令文件名。取消註釋使用默認文件,也就是conf同級的那個passwd文件,取消註釋前面不能有任何空格,否則會報錯
authz-db:指定權限配置文件名,經過該文件能夠實現以路徑爲基礎的訪問控制。取消註釋使用默認文件,也就是conf同級的那個authz文件,取消註釋前面不能有任何空格,否則會報錯
realm:指定版本庫的認證域,即在登陸時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數據文件

當指定 password-db 和  authz-db 時鏈接svn才提示輸入密碼
       
passwd文件svn

[users]
# harry = harryssecret
# sally = sallyssecret    

username = password

#表明註釋
authz文件測試

[aliases]  #在這個組下面定義別名
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]  #定義組的概念,好比harry,sally是一組
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar] #指定配置庫
# harry = rw # 用戶harry有讀寫權限
# &joe = r # &joe表明別名joe
# * =

# [repository:/baz/fuz] #指定配置庫 repository配置庫名稱  /baz/fuz配置庫repository下的路徑
# @harry_and_sally = rw  # @harry_and_sally表明組harry_and_sally
# * = r    # *通配符,表明全部人  $anonymous 匿名用戶  $authenticated非匿名用戶

啓動和中止SVN服務

啓動SVN服務:ui

svnserve -d -r svn/rep01

-d表示後臺運行
-r 指定配置庫路徑

命令行測試

mkdir test
cd  test
svn co svn://localhost/rep01


中止SVN服務:

ps -aux | grep svn
kill -9 進程殺掉

或者

 killall svnserve

注意以下配置

[/]
* = rw

[rep01:/]
test = rw

則啓動配置庫的時候須要svnserve -d -r svn,否則會找不到配置庫rep01

客戶端鏈接SVN 服務器
地址:svn://ip/repository  如:svn://192.168.19.100/rep01

http訪問svn

參考:http://www.cnblogs.com/ayanmw/archive/2011/12/19/2294054.html

安裝apache相關組件

yum -y install mod_dav_svn httpd 

/etc/httpd/conf.d/目錄下會存在文件subversion.conf,其配置內容以下

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

#
# Example configuration to enable HTTP access for a directory
# containing Subversion repositories, "/var/www/svn".  Each repository
# must be both:
#
#   a) readable and writable by the 'apache' user, and
#
#   b) labelled with the 'httpd_sys_content_t' context if using
#   SELinux
#

#
# To create a new repository "http://localhost/repos/stuff" using
# this configuration, run as root:
#
#   # cd /var/www/svn
#   # svnadmin create stuff   
#   # chown -R apache.apache stuff
#   # chcon -R -t httpd_sys_content_t stuff
#

#<Location /repos>
#   DAV svn
#   SVNParentPath /var/www/svn
#
#   # Limit write permission to list of valid users.
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for password protection.
#      # SSLRequireSSL
#
#      AuthType Basic
#      AuthName "Authorization Realm"
#      AuthUserFile /path/to/passwdfile
#      Require valid-user
#   </LimitExcept>
#</Location>  

<Location /repos>:/repos爲虛擬目錄,對應SVNParentPath指定的實際目錄

AuthUserFile:指定用戶名密碼文件,該文件使用htpasswd命令建立

SVNParentPath:指定了SVN配置庫的父目錄

AuthUserFile 用戶添加

htpasswd -h查看命令幫助
第一次添加用戶 

htpasswd -c passwd test

passwd:文件的名稱
test:用戶名
再次添加用戶

htpasswd  passwd test

啓動apache服務

sudo service httpd restart 

注意修改配置庫目錄的權限,否則會一直報權限問題的

chown -R apache:apache rep01   
chcon -R -t httpd_sys_content_t rep01 

 此刻就可使用http://localhost/repos/stuff   repos爲映射的虛擬路徑,stuff爲配置庫

相關文章
相關標籤/搜索