windows svn利用钩子实现代码同步到web目录

思路:  
找 到SVN
Server中的仓库(Repositories)文件夹的位置,在相应的项目文件夹中找到hooks文件夹。在该文件夹中添加一个post-
commit文件;当有commit动作发生时(提交到SVN Server时)就会执行这个post-commit文件,在该文件实现数据的复制。

实例:  
环境:SVN Server与测试用的Web Server在同一台Windows系统服务器上,SVN Server使用的是VisualSVN,Web Server使用的是Apache。项目的名称为test,客户端使用TortoiseSVN。  
首先在apache的www目录下创建一个文件夹,进行checkout,输入需要用户名和密码,将test项目取出到该文件夹中。  
找到SVN Server的Repositories目录,在Repositories/test/hooks文件夹中创建post-commit.bat,在其中写入命令:  
"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\www\test" --quiet --username name --password pwd

(即执行svn update命令,请自行替换用户名和密码)

也可以这样写

@echo off
SET REPOS=%1
SET USER=%2
SET SVN="E:/Program Files/VisualSVN Server/bin/svn.exe"
SET DIR="E:/wamp2/www"
(call %SVN% update %DIR% --username izaodao --password izaodao --non-interactive)

大功告成。  
注:

1.web目录下一定要用TortoiseSVN checkout出Repositories的代码

2.

-username izaodao --password izaodao

izaodao替换为登录svn的用户名和密码

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

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 服务 右键属性 登陆面板 设置桌面交互或者管理员权限再试

源地址:http://www.cnblogs.com/xiezhengcai/archive/2013/11/27/3445457.html

  参考:http://www.2cto.com/os/201303/192225.html

    http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2009/0709/3066.html

    http://blog.sina.com.cn/s/blog_418bef9d0100rqmx.html

windows svn利用钩子实现代码同步到web目录

时间: 2024-10-10 22:39:31

windows svn利用钩子实现代码同步到web目录的相关文章

CentOS6.8 搭建SVN并用钩子自动实现同步到web目录

安装subversion :     yum install -y  subversion 检查安装是否成功:  svn --version 创建仓库目录: mkdir -p /home/svn/test 创建项目:svnadmin create /home/svn/test 检查创建是否成功: (1)cd /home/svn/test (2) ll #查看生成文件 6.cd /home/svn/test/conf #进入目录有文件 authz ,passwd, svnserve.conf 7.

svn利用钩子脚本功能实现代码同步到web目录

一.hook简单介绍 为了方便管理员控制提交的过程 ,Subversion  提供了 hook机制.当特定的 事件发生时,相应的 hook会被调用, hook其实就相当于特定事件的处理函数.每个hook  会得到与它所处理的事件相关的参数,根据 hook的返回值, Subversion会决定是否继续当前的提交过程 要实际安装一个可用的钩子,你需要在 repos/hooks目录下安装一些与钩子同名(如 start-commit或者post-commit)的可执行程序或脚本. 二.本地机器SVN自动

CentOS 创建SVN 服务器,并且自动同步到WEB 目录

一.安装Subversion #yum install subversion 二,基本的SVN服务器配置 1,新建一个目录用于存储SVN所有文件# mkdir /home/svn 2,新建一个版本仓库# svnadmin create /home/svn/project 3,初始化版本仓库中的目录# mkdir project project/server project/client project/test (建立临时目录)# svn import project/ file:///home

Centos下SVN安装以及同步到web目录

一.安装 Yum –y install subversion 建立版本库目录 Mkdir –p /mnt/svn 建立svn库 Svnadmin create /mnt/svn/delieato 启动svn: Svnserve –d –r /mnt/svn 二.配置库 针对每一个库,其conf目录下有三个配置文件(authz.passwd.svnserve.conf) 1.  authz,设置用户组和用户权限 [group] smsyun = ddl,shl //创建一个smsyun的组,并制定

Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion 2,创建版本库 svnadmin create /home/myrepos    //这里的文件目录自己随便设置 3,配置svnserve 上述版本库/home/myrepos建立后在文件夹下会生成conf文件夹,进入/home/myrepos/conf下面会有下面3个文件 authz passwd 

centos 6.8 设置svn钩子同步至web目录

1.在web目录创建项目目录 mkdir ./opt/wwwroot/项目名称 2.使用svn检出项目文件 svn checkout svn://localhost:/项目名称 3.设置svn库中钩子实施同步操作 cd ./opt/svn/repos/项目名称/hooks #进入svn项目钩子管理目录 cp post-commit.tmpl post-commit #复制钩子文件使用post-commit chmod 755 post-commit #赋予权限 3.打开post-commit文件

svn提交自动同步到web目录

环境:CentOS6.5  测试线   svn和web服务器在同一台机器上   SVN版本1.6 情景:在测试环境下,开发部提出希望提交到SVN的代码能自动同步到WEB站点目录下,解决每次都要传双份这一问题,尤其是频繁更新后的繁琐,浪费了大量时间. 思路:通过搜索,查到svn的hooks目录的触发功能,该目录下有许多模板,其中一个是post-commit.tmpl,意为“提交后执行”,通过这个功能我们可以将提交代码后要做的事写到里面来执行. 步骤: 1. 首先导出一份svn的文件到网站目录 #

svn利用钩子post-commit自动更新到线上测试服务器

创建一个新的版本库: [[email protected] svn]# pwd /home/svn [[email protected] svn]# svnadmin create webtest [[email protected] svn]# tree webtest/ webtest/ ├── conf │   ├── authz │   ├── passwd │   └── svnserve.conf ├── db │   ├── current │   ├── format │   ├

SVN实现[email protected]代码同步

1.下载官方Git客户端:https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/Git-1.9.5-preview20150319.exe 2.安装好Git客户端之后,进入[email protected]网页版点击创建项目,即可看见如下命令,打开Git Bash 执行命令 3.这样一个Master的Git就创建好了,并且附带一个 README.md的文件 4.进入[管理]选项卡,对当前项目进