二、同步(checkout)服务器数据到本地 命令:svn checkout [directory] svn co [directory]
eg:
#cd /www/website
#svn co svn://svn_site_url ./
三、设置钩子
我们知道要把svn的内容更新到web目录需要手动的svn up,但是今天笔者教你自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。
1、建立你的web程序目录
mkdir /var/www/html/test
进入/var/www/html/test目录。
svn checkout svn://121.14.177.178:843/svntest 不重命名文件夹,直接在当前目录下检出
svn checkout svn://121.14.177.178:843/svntest test 检出文件并且重命名文件夹
3、在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】
添加脚本内容如下:
#!/bin/sh
SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件
WEB=/var/www/htmhttp://www.cnblogs.com/visi_zhangyang/archive/2012/04/05/2433189.htmll/test #要更新的目录
$SVN update $WEB --username xxx --password xxx #此版本是linux下,windows下是.bat,写法少有不同
其中SVN=右边改成 svn 命令位置
WEB=右边改成你实际的web目录
4、让post-commit有执行的权限 chmod 777 post-commit
第四步:通过 netstat -tunlp | grep svn ,
找到进程id , 执行命令 kill -9 id ,
启动svn服务:svnserve -d -r /var/svn/,
接下来就是测试了。
四、为每个项目制定一个版本库
按照上面的步骤重复安装即可,注意的是启动svn服务的时候,地址写到svn版本库根目录就行,例如:
svnserve -d -r /var/svn/ (版本库都在svn文件夹里面),
如果执行成:svnserve -d -r /var/svn/svnrepos,则当输入在Windows用IP执行checkout的时候默认是检出svnrepos目录。
======================================================
说明:
#!/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格式在提交
参考:
http://blog.163.com/longsu2010@yeah/blog/static/173612348201202114212933/
http://www.cnblogs.com/visi_zhangyang/archive/2012/04/05/2433189.html
http://lhkzyz.iteye.com/blog/1666180