Heim >Backend-Entwicklung >PHP-Tutorial >windows svn 上传后 自动部署 到web目录下,svnweb_PHP教程
第一步
把web目录设置为工作目录
"D:\Program Files (x86)\VisualSVN Server\bin\svn.exe" upgrade "D:\yiyun_www\test" --quiet --username chiyj --password chiyj
在DOS下执行。
第二步修改文件
D:\yiyun_code\test\hooks下新建文件
post-commit.bat 内容如下
@echo off
SET REPOS=%1
SET USER=%2
SET SVN="D:\Program Files (x86)\VisualSVN Server\bin\svn.exe"
SET DIR="D:\yiyun_www\test"
(call %SVN% update %DIR% --username chiyj --password chiyj --non-interactive)
参考 http://www.cnblogs.com/xiezhengcai/archive/2013/11/27/3445457.html
修改服务器上的钩子程序post-commit,将指定要发布的内容的文件夹导出(export)到tomcat目录下就行了
钩子程序post-commit是在执行commit操作后自动执行的,这样每次commit后都自动执行一次导出操作,保持tomcat文件夹内容就是所要发布的内容
---------------------------------------------------------------------------
补充:
例如你版本库的svn访问地址是10.30.11.12:8080/svn/project1,你想把这个版本库下的/trunk/web文件夹发布到tomcat上,发布到tomcat的文件夹地址是d:/tomcat/opt/web,svn的管理员用户名是abc,密码是12345,那么这个钩子程序应该就是:
svn export 10.30.11.12:8080/svn/project1/trunk/web d:/tomcat/opt/web --force --username abc --password 12345 --no-auth-cache
(本人对linux不熟悉,这行指令如有与linux语法不一致的地方,请参考原理自行修改)
说明:
1、--force 是说强制覆盖d:/tomcat/opt/web这个文件夹,避免这个文件夹不为空时报错
2、--username abc --password 12345 是自动将用户名和密码作为参数传送进去
3、--no-auth-cache 是说不缓存用户名和密码,这是出于安全考虑
4、svn export 是将所指定的url的内容导出到所指定的文件夹去。这里之所以不用update而用export,是因为update会导致生成一个隐藏.svn文件夹,这个文件夹是我们不需要的
当然了,如果整个发布的内容很多的话,建议还是用update,而不用export,因为update只更新有变化的部分,而export将重新导出所有内容,网络消耗比update大。
同步?楼主的问题描述不是很清楚啊,如果是上传整个项目到svn的版本库中,到社区里面去看看相关操作视频吧。
scmeye是目前国内最活跃的软件配置管理社区,欢迎到社区中交流。
skyline是scmeye基于svn二次开发而成的管理工具,skyline是开源软件,旨在帮助广大SCM快速完成配置工作,欢迎前来交流
百度搜索 scmeye 即可