第一步:通过yum命令安装svnserve,命令如下:
yum -y install subversion
若需查看svn安装位置,可以用以下命令:
rpm -ql subversion
检测是否安装成功(查看svn版本号)
svnserve --version
第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。
vim /etc/sysconfig/svnserve
可修改文件内容
OPTIONS=“-r /var/svn”
mkdir /var/svn
创建svn版本库
svnadmin create /var/svn/beijing
创建成功后,进入beijing目录下
cd /var/svn/beijing
进入目录,可以看见如下文件信息:
第三步:配置修改
进入已经创建好的版本库目录下,也就是前文说创建的beijing,进入conf
cd /var/svn/beijing/conf
conf下的文件:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
1.编辑 authz 文件(注意:[/]也是必须的)
[/]:表示根目录,即 /var/svnrepos
luo = rw:表示用户luo对根目录具有读写权限。
2.编辑 passwd 文件
3.编辑svnserve.conf,去掉注释并修改,前边不能有空格
第四步:防火墙开启的情况下需配置端口,否则无法连接svn
1.需开放端口并配置
firewall-cmd --permanent --add-port=3690/tcp
2.重启防火墙
systemctl restart firewalld
第五步:启动svn服务器
svnserve -d -r /var/svn
如果提示:svnserve: E000098: Can’t bind server socket: Address already in use 证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务 停止svn服务 killall svnserve 再运行 svnserve -d -r /var/svn,进行启动服务
启动成功后,可用ps -aux查看服务启动是否成功
ps -ef | grep 'svnserve'
netstat -ln |grep 3690
第六步:创建文件夹并检出
svn://ip地址/beijing
输入账号密码即可
自动同步到服务器
第一步:在svn仓库的hooks目录下,复制post-commit.tmpl为post-commit,并写入配置文件
export LANG=en_US.UTF-8 #这个一看就知道
SVN_PATH=/usr/bin/svn #svn地址,这个基本不用改
WEB_PATH=/www/wwwroot/beijing #你的项目的所对应的目录
SVN_USER=beijing #svn账号
SVN_PASS=beijing123456 #svn密码
LOG_PATH=/tmp/svn.log #svn的日志文件,可以不要
#/usr/bin/svn update --username beijing --password beijing123456 /www/wwwroot/beijing --no-auth-cache> /tmp/svn.log ||exit 1 exit 0 #加上 || exit 1> 和 exit 0
$SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache
第二步:给post-commit添加可执行权限
chmod a+x post-commit
cd /www/wwwroot
svn checkout svn://127.0.0.1/项目名