SVN个人使用记录:
//服务器安装SVN
yum install subversion
cd /home
//新建目录
mkdir svn
//创建SVN仓库(仓库名:svn)
svnadmin create /home/svn
cd svn
我们这里特别关注一下conf文件夹,这个是存放配置文件的
cd svn/conf
** authz 是权限控制文件
** passwd 是帐号密码文件
** svnserve.conf 是SVN服务配置文件
配置passwd
vi passwd
[users]
test1=123456
** 账号=密码
配置authz
[/]
test1=rw
上面配置的含义是,test1对/home/svn/下所有文件具有可读可写权限,其它用户均无任何权限,最后一行*=很重要不能少。
配置svnserve.conf
打开下面的5个注释
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /home/svn # 认证空间名,版本库所在目录
** 最后一行的realm记得改成你的svn目录
** 打开注释时切记前面不要留有空格,否则可能有问题
svnserve -d -r /home/svn(启动)
killall svnserve(停止)
** 上述启动命令中,-d表示守护进程, -r 表示在后台执行。
** 默认端口3690,如果你修改了端口,那么要记得加上端口号。
假如现在有:
SVN版本库中的一个项目:/home/svn/tcyg
网站目录:/home/www/
我们先将SVN版本库中的一个项目checkout到网站目录:
svn co file:///home/svn/tcyg/ /home/www/
这时,网站目录已成为SVN的工作副本,接下来利用SVN的钩子让这个工作副本自动更新。
新建一个post-commit钩子:(SVN目录下的 hooks目录下:post-commit.tmpl)
vim /home/svn/tcyg/hooks/post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
export LANG="zh_CN.UTF-8" #防止乱码
svn update /home/www/ --username Hwei --password 123456 --no-auth-cache #设置登陆账号密码并不缓存
//修改文件权限为755
chmod 755 /home/svn/tcyg/hooks/post-commit
注:不要遗漏第一行的#!/bin/sh,否则post-commit会报代号255的错误。
保存后,修改文件权限为755,否则SVN无法调用执行
OK,至此,就完成了svn文件提交后自动同步更新到网站目录的代码了。