打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
微营销
正在加载...

鱼飞之歌

2014-4-3 18:07:34

楼主

如何利用svn自动同步更新到网站服务器

SVN 自动更新
本文的目的:在Win平台搭建SVN服务器,并且利用Hooks实现工作代码提交后实时的更新到测试服务器,以实现团队开发实时到服务器调试需求。
软件平台:Win Xp Sp3,
SVN服务器程序 VisualSVN-Server-1.7.2.msi ,
SVN客户端 TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi
LanguagePack_1.6.2.16344-win32-zh_CN.msi(中文包) (SVN的客户端用户自行安装)
<!--more-->
一、安装 SVN服务器程序
1.1运行 VisualSVN-Server-1.7.2.msi如下图



1.2选择程序安装目录 和 SVN仓库目录 如下图



我程序装在 C:\Program Files\VisualSVN Server, SVN仓库目录在 D:\SVN


1.3 安装完成,立即运行



二、服务器配置
2.1服务器维护界面



2.2仓库目录默认的内容



2.3创建新项目wapzucom






2.3创建用户ve






2.4设置项目的用户权限



Properties   Security Add选择刚创建的用户 veok应用 确认





三、创建测试服务器目录   D:\WWWROOT ,本地开发目录 D:\WORKDIR



四、将代码(D:\Code )导入到项目仓库









输入用户名 密码 并 勾选 保存认证



导入成功,并返回版本号1



五、导出项目代码到工作副本、测试服务器目录












同理,另外导出一份到测试服务器目录D:\WWWROOT (测试服务器的Apache目录指向该位置)


六、使用Hooks自动更新测试服务器代码D:\WWWROOT
6.1 进入 D:\SVN\wapzucom\hooks 建立 post-commit.bat 文件



编辑其内容 为
'C:\Program Files\VisualSVN Server\bin\svn.exe' update 'D:\www\test' --quiet --username name --password pwd
或者可参考下面这段话:
   接下来最关键的一步是,我们需要找到服务器上安装的版本库的路径下面,以版本库名称命名的文件夹下,有一个名字为hooks的文件夹,在这个文件夹下建立post-commit.bat这样一个批处理文件,里面的内容如下:


  @echo off
  “D:\VisualSVN Server\bin\svn.exe” update “D:\Apache Software Foundation\Apache2.2\htdocs\soupei360″ –username XXXXX –password XXXXX


  update前面的路径,是SVN服务器端程序的执行文件路径,后面的是在服务器上同步到的目录的路径,username和password后面是刚才建立用户的用户名和密码,这段批处理的意思是,当我们在本地编写代码,然后通过svn的commit提交时候,首先提交到版本库中,然后版本库自动用这个批处理,把内容同步到服务器上之前指定的文件夹中,从而实现本地和远程同步操作。


  两款SVN配置软件的具体配置教程可以通过搜索引擎得到具体设置方法,在此需要特意强调的是,一定要将本地和服务器上的目录都check out后,批处理才能够自动同步,服务器上的目标文件夹没有check out的话,即使设置的路径正确,也是不能同步的。

6.2 设置访问权限
我的电脑 右键管理 服务和应用程序 服务 VisualSVN Server右键 属性 登陆 添加访问权限 用系统管理员账号(我这里是user)



重启服务器



6.3测试Hooks工作是否正常
修改 index.php 状态如下图



提交修改









最后打开D:\WWWROOT\index.php 可以发现代码已经被成功update



PS : 目录说明
C:\Program Files\VisualSVN Server服务器安装目录
D:\SVN   仓库更目录
D:\WORKDIR本地开发用的工作目录
D:\WWWROOT 服务器测试目录(Apache 指向该目录,即可实现工作目录内容修改后提交到SVN自动发布到测试目录)



1

全部回复

只看楼主 倒序排列

鱼飞之歌 楼主 2楼

在使用中可能会遇到的错误排除 :


1.Error: svn: 解析“D:\www\test”出错,或svn: E020024: Error resolving case of 'D:\www\test'',则有可能是因为目标文件名之后多加了”\”


2.“D:\www\test'或Skipped 'd:\www\test',则可能是因为没有执行步骤提交更新处理文件 即上面提到的.bat文件,svn.exe不认识目标文件夹


3. Working copy 'D:\www\test' is too old,则可能需要使用sven.exe upgrade命令重新整理一下目标文件夹 或者重新安装一个较高客户端版本至少要2.6以上吧


4.还有一个注意问题——Visual SVN Server的权限,否则可能会出现下列错误:
post-commit hook failed (exit code 1) with output:
svn: E155004: Working copy 'D:\www\Test' locked
svn: E200031: sqlite: attempt to write a readonly database
svn: E200031: sqlite: attempt to write a readonly database
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
原因是Visual SVN Server服务的执行权限不够,不能对指定目录做读写操作。解决办法,修改Visual SVN Server
  简单操作 win R运行 services.msc 找到visual svn server 服务 右键属性 登陆面板 设置桌面交互或者管理员权限再试


  如果遇到其他错误请贴下面,咱们共同减少安装错误,谢谢

2014-4-10 10:24:59

正在加载...
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
SVN图解教程(我的十一很精彩)
SVN+FTP服务器搭建(一)
VS2010中配置SVN插件实现团队开发
修改VisualSVN Server地址为ip地址,修改svn服务端地址为ip或者域名地址的方法
手把手教你搭建集中式版本控制系统SVN服务器
本地SVN(Subversion)版本管理服务器搭建指南 | 帕兰映像
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服