SVN利用钩子实现代码同步到web目录
2014-07-24 18:13
351 查看
系统环境:windows server 2003
web服务器:IIS
第一步:svn服务器的安装
由于使用的是windows服务器,所以我选择了最方便配置的VisualSVN服务器。到VisualSVN官网上下载VisualSVN的msi安装包,在windows服务器上安装,一路安装完成。
第二步:防火墙配置
打开“控制面板>Windows防火墙”。选择“例外”,打开“添加端口”
将svn服务的默认端口3690添加到例外列表中,点击“确定”[下图]
再“确定”使设置生效。
同上述方法把https/443端口加入防火墙例外列表,因为svn有两种访问方式svn协议和https协议。
第三步:测试svn服务是否已经畅通
此处不讲svn的使用等等,不懂的自己百度。打开VisualSVN服务器在“Repositories”上右击新建版本库test。然后在“Users”上右击新建用户,此处可以建两个用户一个留给服务器端检出代码使用。另一个为在客户端测试使用。暂定服务器端用户local密码123。
客户端代码检出测试,代码检出成功。添加文件到目录中提交测试,提交成功。Svn服务已经成功搭建。
第四步:服务器端代码部署配置
服务器端获取代码到网站根目录是通过用户每次commit代码时触发post-commit的hook来实现的,因此下面要编写post-commit脚本,该脚本的作用是将版本库中的最新代码检出到网站根目录。首先在服务器上某个位置创建目录wwwtest作为网站根目录,配置好目录的权限,为了方便我使用的是最高权限,对于外网限制严格的长江大学来说开发期的网站根目录设置最高权限是无伤大雅的,待到开发完毕再修改相应的权限便可。废话少说post-commit脚本如下:
?
其中SVN变量是svn.exe主程序的路径,DIR为代码检出目录(即后面要用的wwwtest网站根目录)在服务器端的话可能并不在TortoiseSVN下,而是在VisualSVN的某个目录下,具体位置自己找。脚本编写完成后保存为post-commit.bat。
对服务器端的网站根目录[上面提到的wwwtest目录]使用TortoiseSVN(随自己的习惯选择软件)执行首次的checkout命令。下面测试上述脚本的的正确性:首先在客户端通过svn上传一些文件到svn服务器,到服务器端执行上述脚本文件post-commit.bat。进入test目录检查是否将刚上传的文件导出到了wwwtest目录。(PS:若是用cmd执行post-commit.bat可以看到提示信息,能够很明确的看到是否执行成功)用脚本导出成功。下面将post-commit.bat脚本拷贝到服务器的Repositores/test/hooks文件夹下。重启svn服务,从客户端commit更新到服务器,那么网站根目录下面将会同步更新。
第五步:配置iis服务器,使wwwtest网站生效
打开iis管理新建网站,将网站根目录指向服务器上wwwtest目录配置好网站各项参数,启动网站,访问测试成功。
配置完成!
以上转载于:http://my.oschina.net/duguying/blog/128877
注意的地方:
服务器上要安装TortoiseSVN,而且wwwtest网站目录下要checkout一份。
如果出现以下错误,
post-commit
hook failed (exit code 1) with output:
svn: E120171: Unable to connect to a
repository at URL 'https://xxxxx:443/svn/test'
svn: E120171: Error running context: An error occurred during SSL communication
进入TortoiseSVN\bin\visual
svnserver.exe 注意是apache.羽毛图表那个.然后修改其权限SYSTEM权限.因为默认的network service没有权限写入。
web服务器:IIS
第一步:svn服务器的安装
由于使用的是windows服务器,所以我选择了最方便配置的VisualSVN服务器。到VisualSVN官网上下载VisualSVN的msi安装包,在windows服务器上安装,一路安装完成。
第二步:防火墙配置
打开“控制面板>Windows防火墙”。选择“例外”,打开“添加端口”
将svn服务的默认端口3690添加到例外列表中,点击“确定”[下图]
再“确定”使设置生效。
同上述方法把https/443端口加入防火墙例外列表,因为svn有两种访问方式svn协议和https协议。
第三步:测试svn服务是否已经畅通
此处不讲svn的使用等等,不懂的自己百度。打开VisualSVN服务器在“Repositories”上右击新建版本库test。然后在“Users”上右击新建用户,此处可以建两个用户一个留给服务器端检出代码使用。另一个为在客户端测试使用。暂定服务器端用户local密码123。
客户端代码检出测试,代码检出成功。添加文件到目录中提交测试,提交成功。Svn服务已经成功搭建。
第四步:服务器端代码部署配置
服务器端获取代码到网站根目录是通过用户每次commit代码时触发post-commit的hook来实现的,因此下面要编写post-commit脚本,该脚本的作用是将版本库中的最新代码检出到网站根目录。首先在服务器上某个位置创建目录wwwtest作为网站根目录,配置好目录的权限,为了方便我使用的是最高权限,对于外网限制严格的长江大学来说开发期的网站根目录设置最高权限是无伤大雅的,待到开发完毕再修改相应的权限便可。废话少说post-commit脚本如下:
?
对服务器端的网站根目录[上面提到的wwwtest目录]使用TortoiseSVN(随自己的习惯选择软件)执行首次的checkout命令。下面测试上述脚本的的正确性:首先在客户端通过svn上传一些文件到svn服务器,到服务器端执行上述脚本文件post-commit.bat。进入test目录检查是否将刚上传的文件导出到了wwwtest目录。(PS:若是用cmd执行post-commit.bat可以看到提示信息,能够很明确的看到是否执行成功)用脚本导出成功。下面将post-commit.bat脚本拷贝到服务器的Repositores/test/hooks文件夹下。重启svn服务,从客户端commit更新到服务器,那么网站根目录下面将会同步更新。
第五步:配置iis服务器,使wwwtest网站生效
打开iis管理新建网站,将网站根目录指向服务器上wwwtest目录配置好网站各项参数,启动网站,访问测试成功。
配置完成!
以上转载于:http://my.oschina.net/duguying/blog/128877
注意的地方:
服务器上要安装TortoiseSVN,而且wwwtest网站目录下要checkout一份。
如果出现以下错误,
post-commit
hook failed (exit code 1) with output:
svn: E120171: Unable to connect to a
repository at URL 'https://xxxxx:443/svn/test'
svn: E120171: Error running context: An error occurred during SSL communication
进入TortoiseSVN\bin\visual
svnserver.exe 注意是apache.羽毛图表那个.然后修改其权限SYSTEM权限.因为默认的network service没有权限写入。
相关文章推荐
- svn利用钩子脚本功能实现代码同步到web目录
- svn利用钩子脚本功能实现代码同步到web目录 推荐
- svn利用钩子脚本功能实现代码同步到web目录
- windows svn利用钩子实现代码同步到web目录
- win环境下SVN利用钩子实现代码同步到WEB目录
- svn利用钩子实现代码同步到web目录
- svn利用钩子实现代码同步到web目录
- Linux CentOS SVN 设置钩子hooks/post-commit来同步更新服务器web目录,实现代码自动部署
- 初学svn对版本进行控制 用post- commit钩子实现代码同步到web目录
- yum搭建svn apache 利用钩子检出到web目录 自动同步
- 利用svn钩子实现php代码同步
- CentOS6.8 搭建SVN并用钩子自动实现同步到web目录
- svn利用钩子脚本功能实现代码同步到web目录
- SVN 设置钩子将代码同步到Web目录下面
- LinuxSvn服务器搭建之代码同步web目录
- 利用SVN的post-commit钩子实现多项目自动同步
- Centos7上搭建SVN服务器并实现自动同步至web目录
- 在Centos7上搭建SVN服务器并实现自动同步至web目录
- windows下利用svn钩子同步部署目录的方法
- 利用SVN的post-commit钩子实现多项目自动同步