svn在本地测试完代码后,commit到服务器的svn版本库中,这时如果想要部署到服务器上看效果,需要到web目录下运行svn update命令更新版本。但是,这样太太太麻烦了,如果这样的话,虽然有记录版本的功能,相比宁愿去用ftp上传了。强大的svn肯定有好的解决方法吧…
之前,我一直尝试想,svn能不能像git一样,创建一个有工作区的仓库,而不是裸仓库。这样,把仓库直接放到web目录下不就可以了么…为此搜索引擎用了很多次都没找到svn创建带工作区的仓库,未果。后来,因为忙于别的事,这个问题也就放下了,直到昨晚,我的大学室友,xxw童鞋,unity程序猿猿,突然想跟我玩玩php脚本语言,于是让我帮他开一个vhost,为了能让他保存他学脚本语言的记录,就想到给他弄一个svn仓库,所以,问题就来了,怎么在他提交代码到版本库的时候,自动同步代码到web目录呢,如果这个没做好,那我这个忙就算是没帮上哒…
找了一找资料,果然有了,在成功提交一个新版本的时候,svn仓库目录下的hook文件夹下的post-commit脚本会运行,找到啦,这就好办了,用shell写一个脚本,在提交完版本后,自动在web目录运行一下svn update不就搞定了么。。。
mv post-commit.tmp post-commit
vim post-commit
#!/bin/bash
#export LANG=zh_CN.GBK #svn 编码是GBK
export LANG=en_US.UTF-8 #svn 编码是UTF-8 适情况选择
svn up --username=用户名 --password=密码--no-auth-cache --non-interactive /web目录地址
:wq保存退出,chmod +x post-commit加上可执行权限,搞定!
嘿嘿http://xxw.feehi.com,可爱的c#+unity猿猿,欢迎加入服务器脚本大家庭………………………………………….
转载请注明:飞嗨 » svn提交版本库后,自动同步到web目录部署