天天看點

SVN學習筆記

前言:

   svn目前是比較流行的檔案版本配置工具,對于開發,運維,測試都很有幫助,是技術人員必須要掌握的軟體工具之一,下面就svn安裝配置和使用,記錄下學習過程。

一 安裝封包件

需要準備下面安裝包,如果不準備,可以使用yum源安裝,下面我使用源碼編譯安裝

apr-1.5.2.tar.gz

apr-util-1.5.4.tar.gz

httpd-2.4.23.tar.gz

subversion-1.9.4.tar.gz

1.1 安裝apr

tar -xvzf apr-1.5.2.tar.gz

cd apr-1.5.2

./configure --prefix=/opt/apr

make

make install

1.2 安裝apr-util

tar -xzvf apr-util-1.5.4.tar.gz

cd apr-util-1.5.4

./configure --prefix=/opt/apr-util --with-apr=/opt/apr

1.3 安裝httpd

tar -xvzf httpd-2.4.23.tar.gz

cd httpd-2.4.23

./configure --prefix=/opt/apache2.4.23 --enable-dav --enable-so --with-apr=/opt/apr --with-apr-util=/opt/apr-util

1.4 安裝subversion

tar -xzvf subversion-1.9.4.tar.gz

cd subversion-1.9.4

./configure --prefix=/opt/subversion --with-apr-util=/opt/apr-util --with-apxs=/opt/apache2.4.23/bin/apxs

二 修改配置資訊

2.1 建立使用者svn

useradd svn

2.2 修改httpd配置

vi /opt/apache2.4.23/conf/httpd.conf

User svn

Group svn

# svn config

Include conf/extra/httpd-svn.conf

2.3 修改httpd-svn.conf配置檔案

修改httpd的svn配置資訊,增加下面子產品和配置,一遍用于啟動http管理svn

[root@localhost svn]# cat /opt/apache2.4.23/conf/extra/httpd-svn.conf

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn>

DAV svn

SVNParentPath /datasvn

AuthType Basic

AuthName "Subversion repository"

AuthUserFile /opt/subversion/conf/auth.conf

#指定的是SVN通路帳号檔案

Require valid-user

AuthzSVNAccessFile /opt/subversion/conf/svnaccess.conf

#指定的是SVN的通路控制檔案

</Location>

2.4 建立使用者

[root@localhost svn]# /opt/apache2.4.23/bin/htpasswd -m /opt/subversion/conf/auth.conf zhangsan

New password:

Re-type new password:

Adding password for user zhangsan

[root@localhost svn

2.5 建立版本庫

mkdir /datasvn

mkdir /datasvn/test

/opt/subversion/bin/svnadmin create /datasvn/test

chown svn /datasvn/ -R

2.6 配置用戶端通路

啟動指令:

/opt/subversion/bin/svnserve -d -r /datasvn --log-file /svn/svn1.log

2.7 配置權限檔案

[root@localhost svn]# cat /opt/subversion/conf/svnaccess.conf

[groups]

dev=chenwei

[/]

@dev=rw

[root@localhost svn]#

2.8 啟動服務

  /opt/apache2.4.23/bin/apachectl start

三 測試

  通路位址:http://192.168.100.253/svn/test

四 實際案例

  下面部門員工能夠讀寫通路自己部門檔案夾和隻讀公共目錄

技術部 ---》 ITIL it001 it002

市場部 -----> market mak001 mak002

銷售部 ---》 sales sales001 sales002

公共目錄 ---》 common

4.1 svn配置

/opt/subversion/bin/svnadmin create /datasvn/ITIL

/opt/subversion/bin/svnadmin create /datasvn/market

/opt/subversion/bin/svnadmin create /datasvn/saltes

/opt/subversion/bin/svnadmin create /datasvn/common

授予相應的目錄權限

chown -R svn /datasvn/*

4.2添加使用者

/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf it001 it001

/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf it002 it002

/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf mak001 mak001

/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf mak002 mak002

/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf sales001 sales001

/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf sales002 sales002

檢查是否已經添加成功:

[root@localhost datasvn]# cat /opt/subversion/conf/auth.conf

chenwei:$apr1$RccWqRlt$bEgPhHOUIpUJ6C03bnikQ0

zhangsan:$apr1$1oEk5gdL$qgjG9dSdY9vglbroGzPjZ.

it001:$apr1$qLwiTGsS$DD4c12k34YNR.QjeqqeEO/

it002:$apr1$3ipOmpPM$noAfmlxHeWwx5/m5u19ij0

mak001:$apr1$O9oQAJYr$.oAMEFZ/PcHhYgYjGi.Ya1

mak002:$apr1$/gVAHKsB$qkRd25cPOs.3LvA0RW6iA0

sales001:$apr1$o6OW/xtG$0O2uKG8OHGk9QNdK0bmlp0

sales002:$apr1$8eiO7rdV$dViqMIXfNOswszyJpZgZY.

上傳檔案到svn目錄中

4.4 設定通路權限

  定義權限,設定組,使用者,寫,讀權限

[root@localhost conf]# cat /opt/subversion/conf/svnaccess.conf 

itil=it001,it002

market=mak001,mak002

sales=sales001,sales002

common=itil,market,sales

[ITIL:/]

@itil=rw

[market:/]

@market=rw

[sales:/]

@sales=rw

[common:/]

*=r

[root@localhost conf]# 

4.5 驗證

浏覽器驗證:

<a href="http://s3.51cto.com/wyfs02/M01/00/B3/wKiom1mb86TSIjfgAAAZbXdMJK0516.png" target="_blank"></a>

市場部是無法通路的:

<a href="http://s3.51cto.com/wyfs02/M02/00/B3/wKiom1mb86Wyk64kAABcz1SSLQA859.png" target="_blank"></a>

本文轉自 woshiwei201 51CTO部落格,原文連結:http://blog.51cto.com/chenwei/1958398