做以下操作,首先你的Linux已经装好SVN环境,并能熟练使用SVN。
实现原理:
我们知道要把svn的内容更新到web目录需要手动的svn up,但是今天笔者教你自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。
第一步:创建web目录
例如:/phpstudy/www/town ,town是网站根目录。
进入到www目录,检出项目
#cd /phpstudy/www
svn checkout svn://121.14.177.178:843/town 检出完成,www下会多一个town文件夹
svn checkout svn://121.14.177.178:843/town test 检出并且重命名文件夹, 检出完成,www下会多一个mytown文件夹
第二步:编写钩子脚本
1.进入到版本库的钩子目录下 (我的目录:/home/svn/repository/town/hooks/)
#cd /home/svn/project/hooks
编辑
#vi post-commit
2.内容如下:
#!/bin/sh
export LANG=zh_CN.UTF-8
#设定语言,根据系统语言设置,如果是UTF-8 就设置为 LANG=zh_CN.UTF-8
SVN=/usr/bin/svn //SVN路径
WEB=/phpstudy/www/town //要更新的web目录,也是检出版本库目录
$SVN update $WEB --username junxiang --password jx123456 no-auth-cache
3.保存退出第三步:给post-commit执行权限
#chmod -R 755 post-commit
第四步:这里就已经完成了,第四步就是测试了。
说明:
#!/bin/sh 说明是执行shell命令
export LANG=zh_CN.GBK 是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为GBK编码,SVN默认是UTF-8编码,如果不设置将会出现错误,而执行不成功,错误标识为svn: Can't convert string from native encoding to 'UTF-8'
/usr/bin/svn update --username lxy --password 123456 /var/www/myproject 执行更新操作
如果提示:post-commit hook failed (exit code 255) with no output赋予post-commit文件可执行权限
如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交亲测已成功,如有困难的请加群问群主。