SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。互聯網上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開發同一個項目,共用資源的目的
實驗環境
centos6.5_x64
軟件安裝
cp -pv /etc/sysconfig/selinux /etc/sysconfig/selinux.bak
echo > /etc/sysconfig/selinux
echo SELINUX=disabled > /etc/sysconfig/selinux
yum install -y subversion httpd httpd-devel mod_dav_svn linux服務端安裝
TortoiseSVN-1.10.0.28176-x64-svn-1.10.0 windows客戶端安裝
svn --version
svn, version 1.6.11 (r934486) compiled Aug 17 2015, 08:37:43
httpd -v
Server version: Apache/2.2.15 (Unix)
find /usr/lib64/httpd/ -name "mod_dav_svn.so" -o -name "mod_authz_svn.so" 查看svn模塊安裝
/usr/lib64/httpd/modules/mod_authz_svn.so
/usr/lib64/httpd/modules/mod_dav_svn.so
mkdir -pv /usr/local/svn/test 創建項目目錄
svnadmin create /usr/local/svn/test 生成項目目錄配置
ls /usr/local/svn/test
conf db format hooks locks README.txt
cp -pv /usr/local/svn/test/conf/authz /usr/local/svn/test/conf/authz.bak
echo > /usr/local/svn/test/conf/authz
cat > /usr/local/svn/test/conf/authz << EOF
> [groups]
> admin = admin,test1 admin組名 admin test1爲組用戶
> [/]
> admin = rw
> * =
> EOF
cp -pv /usr/local/svn/test/conf/passwd /usr/local/svn/test/conf/passwd.bak
echo > /usr/local/svn/test/conf/passwd
cat > /usr/local/svn/test/conf/passwd << EOF
> [users]
> admin = admin
> test1 = test1 admin爲用戶名 admin爲密碼
> EOF
cp -pv /usr/local/svn/test/conf/svnserve.conf /usr/local/svn/test/conf/svnserve.conf.bak
echo > /usr/local/svn/test/conf/svnserve.conf
cat > /usr/local/svn/test/conf/svnserve.conf << EOF
> [general]
> anon-access = none
> auth-access = write
> password-db = passwd
> authz-db = authz
> realm = demo's svndata
> [sasl]
> # use-sasl = true
> # min-encryption = 0
> # max-encryption = 256 複製配置到配置文件
> EOF
svnserve -d -r /usr/local/svn/ & 啓動服務
killall svnserve 停止服務
cp -pv /etc/rc.d/rc.local /etc/rc.d/rc.local.bak
echo "svnserve -d -r /home/data/svn/ &" >> /etc/rc.d/rc.local 開機啓動svn服務
ps -ef | grep svn | grep -v grep
root 24357 1 0 14:44 ? 00:00:00 svnserve -d -r /usr/local/svn/
用戶名爲 /usr/local/svn/conf/passwd下文件用戶名 密碼
cp -pv /etc/httpd/conf.d/subversion.conf /etc/httpd/conf.d/subversion.conf.bak apache_svn結合
cp -pv /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
touch /usr/local/svn/passwd
cp -pv /usr/local/svn/test/conf/authz /usr/local/svn/authz
sed -i 's/AllowOverride None/AllowOverride All/g' /etc/httpd/conf/httpd.conf
sed -i 's/#ServerName www.example.com:80/ServerName *:80/g' /etc/httpd/conf/httpd.conf
cat > /etc/httpd/conf.d/subversion.conf << EOF
> LoadModule dav_svn_module modules/mod_dav_svn.so
> LoadModule authz_svn_module modules/mod_authz_svn.so
> <Location /svn>
> DAV svn
> SVNParentPath /usr/local/svn/test
> AuthType Basic
> AuthName "Authorization Realm"
> AuthzSVNAccessFile /usr/local/svn/authz
> AuthUserFile /usr/local/svn/passwd
> Require valid-user
> </Location> 寫入配置到配置文件
> EOF
chkconfig --level 35 httpd on
htpasswd -cb /usr/local/svn/passwd admin 123456 admin爲用戶名 123456爲密碼
htpasswd -b /usr/local/svn/passwd test1 123456 >> /usr/local/svn/passwd -b用於第二個用戶
cat /usr/local/svn/passwd/
admin:kvxK/.pJlKy82
test1:GybylD9bmDi1s
chown -R apache:apache /usr/local/svn/test
service httpd restart
用戶名admin 密碼123456