SVN服务端配置:svn (subversion)+Apache(httpd)+SSL(openssl)
tar zxvf openssl-0.9.8b.tar.gz
cd openssl-0.9.8b
make && make install
cd ..
tar xvzf apr-1.3.7.tar.gz
./configure
make&&make install
tar xvzf apr-util-1.3.8.tar.gz
./configure --with-apr=/usr/local/apr/bin/apr-1-config
make&&make install
tar zxvf httpd-2.2.15.tar.gz
./configure --prefix=/usr/local/apache/ --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-ssl=static --with-ssl=/usr/local/ssl
make && make install
grep -v "#" /usr/local/apache/bin/apachectl > /etc/init.d/httpd
sed -i '1i #! /bin/sh\n# chkconfig: 2345 85 15\n# description: Apache is a World Wide Web server.' /etc/init.d/httpd
chmod 755 /etc/init.d/httpd
chkconfig --add httpd
service httpd restart
tar xvzf neon-0.28.4.tar.gz
./configure --with-ssl
make&&make install
tar zxvf subversion-1.6.11.tar.gz
cd subversion-1.6.11
./configure --prefix=/usr/local/svn --with-neon=/usr/local/
make && make install
ln -s /usr/local/svn/bin/svn /usr/bin/svn
ln -s /usr/local/svn/bin/svnadmin /usr/bin/admin
vi /usr/local/apache/conf/httpd.conf
添加:
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn/repos
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /usr/local/svn/passwd
AuthzSVNAccessFile /usr/local/svn/auth
Require valid-user
SSLRequireSSL
</Location>
去掉注释:Include conf/extra/httpd-ssl.conf
cd /usr/local/apache/conf/
openssl req -new -x509 -nodes -out server.crt -keyout server.key
新建账户权限文件和密码文件:
vi /usr/local/svn/auth
[groups]
[test:/]
test = r
testadmin = rw
/usr/local/apache/bin/htpasswd -c /usr/local/svn/passwd testadmin ——>产生账户密码
/usr/local/apache/bin/htpasswd /usr/local/svn/passwd test
添加svn 防火墙
上传 svn_ip_list 和svn-iptbales.sh 到 qeedoodb下 ,执行 svn-iptables.sh
新建仓库
创建仓库目录 svnadmin create /usr/local/svn/repos/test
创建工作目录 mkdir -p /svn_update_data/test
导入初始版本 svn import /svn_update_data/test file:///usr/local/svn/repos/test -m "initial import"
同步工作目录 /usr/local/svn/bin/svn --force checkout file:///usr/local/svn/repos/test/ /svn_update_data/test/
手动更新仓库版本
更新工作目录 cd /svn_update_data/mh/ && svn update
手动更新文件
更新仓库文件 svn --force add /svn_update_data/test/*
生成新版本 cd /svn_update_data/test/ && svn commit -m "version update by who"
从外部客户端更新仓库版本: /usr/local/svn/bin/svn --username testadmin --force checkout https://192.168.189.150/svn/test/ /svn_update_data/test
更新工作目录 cd /svn_update_data/test/ && svn update
手动更新文件
更新仓库文件 svn --force add /svn_update_data/test/*
生成新版本 cd /svn_update_data/test/ && svn commit -m "version update by testadmin"
客户端配置:svn (subversion)
tar zxvf subversion-1.6.11.tar.gz
cd subversion-1.6.11
./configure --prefix=/usr/local/svn --with-ssl
make &&make install
ln -s /usr/local/svn/bin/svn /usr/bin/
Q&A
1.虚拟机里的版本是旧的,必须与仓库同步后才能开服
没法直接拉仓库里的文件;只能删除版本 ,然后直接从仓库拉版本(直接checkout就可以)
2.版本回滚(待完善)
svn merge -r 11:10 file:///subversion/data/svn/repos/res/ (回滚到本地)
svn commit --message "roll back to r10" (提交仓库)
svn up -r 11 (单机 回滚或到指定版本)
3.权限控制,工作目录与仓库目录权限
工作目录转移到本地;s66权限设置
4.有些文件不能import到仓库
5.怎么切换仓库地址
svn switch --relocate https://192.168.189.150/svn/test/ https://192.168.189.151/svn/test/
6.怎么备份svn 仓库
svnadmin dump --deltas /usr/local/svn/repos/test |bzip2 > dump.bz2
7.怎么恢复svn备份到新的仓库
bzcat dump.bz2 | svnadmin load /usr/local/svn/repos/test
8.convmv -f GBK -t utf8 -r ./ --notest
9.怎么改变文件的可执行权限
svn propset svn:executable on iFuncity