今天在Ubuntu环境下部署svn版本控制服务。1.下载并安装#apt-getinstallsubversion2.创建目录#mkdir/home/svn#mkdir/home/svn/repository#chmod-R777/home/svn/repository3.创建仓库#svnadmincreate/home/svn/repository查看版本库目录:#cd/home/svn/repository/home/svn/repository#ls-ltotal24-rw-r--r--1rootroot246Sep214:13README.txtdrwxr-xr-x2rootroot4096Sep214:13confdrwxr-sr-x6rootroot4096Sep214:13db-r--r--r--1rootroot2Sep214:13formatdrwxr-xr-x2rootroot4096Sep214:13hooksdrwxr-xr-x2rootroot4096Sep214:13locks4.修改配置文件,进入配置文件:root@docker:/home/svn/repository#cdconfroot@docker:/home/svn/repository/conf#ls-ltotal20-rw-r--r--1rootroot1080Sep214:13authz-rw-r--r--1rootroot885Sep214:13hooks-env.tmpl-rw-r--r--1rootroot309Sep214:13passwd-rw-r--r--1rootroot4371Sep214:13svnserve.conf1,修改svnserve.confvimsvnserve.conf取消下面参数的注释:[general]anon-access=none#匿名访问权限,默认为read,none表示不允许访问auth-access=write#Authorization证书用户权限password-db=passwd#用户信息存放文件,默认在版本library/conf下,也可以用绝对路径指定文件位置authz-db=authz2,修改passwd文件vimpasswd添加用户名和密码,例如corwien=corwien_1233,修改authz文件vimauthz,在[group]下添加:admin=corwien[/]@admin=rw5.启动svn服务#svnserve-d-r/home/svn查看是否进程已经启动:#psaux|grepsvnserverroot1340.00.0114601052pts/1S+14:220:00grep--color=autosvnserver从上面开始,进程已经启动6.测试我们在客户端建立的svn服务地址:svn://ip/Repository注意:默认端口是3690,要打开。7.设置开机自动启动查看svnserve的位置例如svnserve返回/usr/bin/svnserve,记住这个,后面需要开始写脚本,cd/etc/init.dvimsvn.sh打开写#!/bin/bash/usr/bin/svnserve-d-r/home/svn保存退出,给文件添加可执行权限chmod+x/etc/init.d/svn.shopen/etc/rc.d/rc.local,在新行添加etc/init.d/svn.sh重启系统,看svn有没有启动八、hook进入项目svn,找到hooks文件夹root@docker:/home/svn/repository/hooks#ls-ltotal36-rwxr-xr-x1rootroot2634Sep214:13post-commit.tmpl-rwxr-xr-x1rootroot2773Sep214:13post-lock.tmpl-rwxr-xr-x1rootroot2994Sep214:13post-revprop-change.tmpl-rwxr-xr-x1rootroot2605Sep214:13post-unlock.tmpl-rwxr-xr-x1root根4038Sep214:13pre-commit.tmpl-rwxr-xr-x1rootroot3621Sep214:13pre-lock.tmpl-rwxr-xr-x1rootroot3469Sep214:13pre-revprop-change.tmpl-rwxr-xr-x1rootroot3309Sep214:13pre-unlock.tmpl-rwxr-xr-x1rootroot3754Sep214:13start-commit.tmplsvnhooks模板函数介绍start-commit在提交前触发事务预提交在完成前触发事务后提交在提交完成时触发事务pro-revprop-change在修改版本属性之前触发事务revprop-change在修改版本属性后触发事务后锁定。锁定文件后执行脚本。例子:chmod755post-commit&&vimpost-commit#!/bin/sh#POST-COMMITHOOKREPOS="$1"REV="$2"exportLANG=en_US.UTF-8SVN=/usr/bin/svn#svn这里配置svn安装bin目录下的文件WEB=/var/www/myweb#要更新的目录$SVNupdate$WEB--usernameadm--passwordadmchown-Rwww:www$WEB输入/var/www/myweb文件夹以手动签出svn存储库。下次svn版本更新时自动更新到服务器checkout项目:svncheckoutSVN仓库URL任意本地磁盘工作目录相关文章:ubuntu下安装svnUbuntu14.04快速搭建SVN服务器及日常使用【转】SVN练习笔记(理论概念)--版本控制
