1.介绍
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。适合中小公司的开发人员不多的项目使用,相比git管理工具更简单.
2.安装svn
++2.1 国际惯例 首先看看系统有没安装++
bash
rpm -qa | grep subversion
如果有
bash
rpm -e subversion-1.4.2-4.el5_3.1
++2.2 就用yum安装就行了++
bash
yum -y install subversion
bash
cd /etc/rc.d/init.d
ll | grep 'svn'
-rwxr-xr-x 1 root root 2243 Feb 12 2014 svnserve
已经安装到系统服务了,安装成功
++2.3 建立版本库目录++
bash
mkdir /www/svndata
svnserve -d -r /www/svndata --listen-port 63790
-d 表示svnserve.exe 将会作为一个服务程序运行在后台
-r表示把/www/svndata目录作为根目录
创建一个项目
bash
svnadmin create /www/svndata/website
配置允许用户web访问
bash
cd /www/svndata/website/conf
bash
vi svnserve.conf
anon-access=none
auth-access=write
password-db=passwd
bash
vi passwd
bash
[users]
#<用户1> = <密码1>
#<用户2> = <密码2>
#例如
web=123456
#修改的文件前面不能有空格,否则启动svn server出错
重启svn
bash
killall svnserve
svnserve -d -r /www/svndata
3.一些操作
++3.1 checkout一份SVN++
bash
svn co svn://192.168.133.130/www/svndata/website myweb
svn://192.168.133.130/www/svndata/website svn的地址
myweb 自定义的项目名字
如果弹出 。。。not found之类的信息,导出地址改为
bash
svn co svn://192.168.133.130/website myweb
++3.2 更新和提交版本++
bash
svn update
svn commit -m "20180115"
svn add test.php
++3.3 查看日志 显示这个文件的所有修改记录,及其版本号的变化++
bash
svn info index.php
++3.4 比较差异++
bash
svn diff path(将修改的文件与基础版本比较)
4.可能会碰到的问题
4.1 Starting svnserve: svnserve: Can't bind server socket: Address already in use[FAILED]
解决方法:
bash
killall svnserve
5. 实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中
bash
cd /var/www/svndata/njlrxx/hooks/
cp post-commit.tmpl post-commit
编辑post-commit,在文件最后添加以下内容
复制代码
bash
REPOS="$1"
REV="$2"
BASEPATH=/var/www/webroot/njlrxx
WEBPATH="$BASEPATH/"
export LANG=zh_CN.UTF-8
svn update $WEBPATH --username jiqing --password 123456 --no-auth-cache
增加脚本执行权限
chmod +x post-commit
最后操作是关闭服务然再打开服务: