当前位置:首页 » 编程软件 » svn钩子脚本

svn钩子脚本

发布时间: 2023-04-26 21:32:47

㈠ 如何把测试服务器上的代码通过svn同步到正式服务器上

您好,最简单的办法,将SVN服务器和测试服务器架设在同一台主机上,然后编辑SVN的post-commit钩子脚本,这个钩子是在每次成功commit后由SVN服务器自动调用执行的,存放在SVN服务器上该版本库的hooks文件夹下,编辑这个脚本,调用svn的checkout或者update,在SVN服务器主机上得到一个最新版的SVN客户端文件夹,接着通过这个脚本调用编译、部署指令,部署到测试服务器指定的文件夹,这就ok了。这样每次commit后就会自动发布一个新的测试版到测试服务器上。
当然了,也可以用操作系统的定时任务来做这个,来定时发布新测试版。

㈡ 在想实现在两台svn服务器之间实现数据同步,发现 执行 svnsync init 时不能正常进行。

在同步的目标服务器端该版本库的hooks文件夹内增加一个钩子脚本,pre-revprop-change.bat,里面写上一行命纳芹氏困令:
exit 0
然后就洞核毕应该一起OK了。

㈢ svn服务器备份svnsync命令怎么用

有较多参数命令,可在命令行输入 svnsync help来查看;网上相关实例蛮多,可网络下。
使用svnsync备份很简单,只有四个步骤,在这里和大家简单介绍一下,希望通过本节的学习大家能够掌握使用svnsync命令对SVN库进行备份的方法。
下面是具体的备份步骤:
一、在备份机上创建一个空库:svnadmincreateSMP
二、更改该库的钩子脚本pre-revprop-change(因为svnsync要改这个库的属性,也就是要将源库的属性备份到这个库,所以要启用这个脚本):
cdSMP/hooks;
cppre-revprop-change.tmplpre-revprop-change;
chmod755pre-revprop-change;
vipre-revprop-change;
将该脚本后面的三句注释掉,或者干脆将它弄成一个空文件。
三、初始化,此时还没有备份任何数据:
svnsyncinitfile:///home/backup/svn/svnsync/SMP/http://svntest.subversion.com/repos/SMP
语法是:svnsyncinit{你刚创建的库url}{源库url}
注意本地url是三个斜杠的:///
四、开始备份SVN库:
svnsyncsyncfile:///home/backup/svn/svnsync/SMP
这是就一个个版本进行备份了。我们来看一下SVN库备份过程中可能出现的错误。
附录:
可能的报错一:

,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' svnsync:Couldn'

这个时候可能属性被锁了,删掉属性:svnpropdelsvn:sync-lock--revprop-r0file:///home/backup/svn/svnsync/SMP
删除成功后,再试一遍基本就可以了。如果反复操作都是同样错误的话,有可能是你的svn安装的有问题,重新安装一遍就好了,俺就是这样。
可能报错二、
svnsync:REPORTrequestfailedon'http://svn1.subversion.com/repos/Relevance'
svnsync:Therequestedreportisunknown.这是因为你源库的版本太低了,svnsync所需要的函数Report是svn1.4后加入的。没办法,对你的SVN库进行升级后才能备份。

㈣ 什么是svn的钩子脚本

1. SVN(Subversion)简介
SVN是类似于VSS 和 CVS 的版本管理软件,是CVS的作者另起炉灶开发的,继承了CVS的优点,避免了CVS的一些缺点.
客户端软件TortoiseSVN与资源管理器结合,使用非常方便.
2.安装文件及说明文档所在目录:
客户端安装文件:
http://203.187.176.183/TortoiseSVN-1.1.7-UNICODE_svn-1.1.4.msi
中文语言包:
http://203.187.176.183/LanguagePack_1.1.7_zh_CN.exe
3.简要说明
由于客户端软件TortoiseSVN与资源管理器结合使用,所以安装后要reboot
中文语言包使用方法: 桌面或资源管理器的任何地方右键,
4 基本操作
Svn服务器地址203.187.176.183
每人自己一个私有目录,URL分别是
svn//203.187.176.183/yhb
svn//203.187.176.183/zwb
svn//203.187.176.183/ldh
svn//203.187.176.183/pb
svn//203.187.176.183/pub
你的账号密码通过手机短信发给你.
输入你自己的URL ,比如:svn//203.187.176.183/zwb
常用操作:将一个已有的工程加入SVN
例如:有目录 e:\project1 ,导入 SVN
导入到你的URL下面的某个子目录下:
比如:svn//203.187.176.183/zwb/project1
然后用"SVN 取出"功能从刚导入的或别人导入的工程获得一个working .
Important
You can only check out into an empty directory. If you want to check out a previously imported sourcetree, Subversion will throw an error messge. You will have to check out into a different directory or delete the existing sourcetree first
要想check out (取出)到刚才进行导入的目录,必须先删除原目录中的文件,或新建个目录
取出 操作成功后,目录会有个绿色的勾, 并增加了一个目录 .svn
-------修改过的文件会有红色标识,新增加的文件没有任何标识------
―――使用SVN提交 将改动上传到SVN服务器 ――――――――――――――
改动过的文件和新增加文件会在列表中,要都选中.

㈤ svn提交失败怎么解决

从唯神报错信息来看,渣山胡是被SVN服务器端的钩子阻止了这次commit,你需要找SVN管理员,问问他在服务器端对commit做了哪些限制

SVN钩子是SVN服务器自动调用的一些脚本,一般通过这些钩子对commit、lock、属性设置做出一些闲置,如拦或附带一些其他操作

㈥ svn配置钩子更新网站目录 每次提交 程序会卡在正在发送文件 有人说是 脚本有问题 手动执行脚本没有问题

把报错信息发上来看看。
如果报错说被某个钩子阻止,就检查那个钩子是否有问题。如果那个钩子手动执行没问题,最常见的原因的就是path路径问题,一般把钩子里的命令行都改成绝对路径就OK了。

㈦ 如何通过svn钩子脚本记录提交人,提交库,提交文件,提交时间

其实原理很简单,就是利用svn的钩子:post-commit,在提交过后想做什么在这个脚本里就写什么。
假设我们的SVN目录是:/home/svn
我们需要同步的web目录是:/home/www/web(前提,这个web目录也是从svn里面检出的)

㈧ windows中svn怎么配置钩子代码

如果服务器端是windows环境的话,那么钩子实际就是批处理文件(扩展名bat)

这些钩子都存放在服务器端的hooks文件夹内,比较常用的钩子包括pre-commit.tmpl、post-commit.tmpl等,pre-commit.tmpl是当服务器端接收到commit请求的时候自动调用这个钩子,post-commit.tmpl是当完成commit操作的时候服务器端自动调用这个钩子,在windows环境下钩子程序的扩展前好名要改成键悔册bat,而不能用tmpl

至于钩子的内容,就看自己的发挥了,你需要熟悉DOS批处理文件的编写技巧,常见的应用比如:当commit完成后,自动调用钩子程序,通过svn update命令,将最新版本发布到服务器上的测试环境中
在网上查了,发现都不对,有哪位大哥大姐知道,告一下。也不提示错误,就是稿宏同步不了

㈨ 如何用svn hook来实现强制代码评审

要用SVN服务器厅桐端的钩子来实现code review,这个比较难操作,钩子会写的非常复杂,要通过钩子识别出此次commit上传了哪些文件,然后才能调用代码静态检查工具。
建议改成在客户端强制code review,比如TortoiseSVN可以在凯拿客户端扮孙坦定制一个类似钩子的脚本,通过脚本在commit之前对代码进行检查,或者要求在commit时必须在log中粘贴代码检查通过时自动生成的文本来证明。

㈩ SVN的POST-COMMIT钩子怎么用

利用SVN的POST-COMMIT钩子自动部署代码

我们在开发的过程将代码提交到SVN后使用SVN的hook,通过post-commit脚本,在目
标文件夹根下执行svn update操作,将更新内容同步到测试环境,这样开发调试非常方便。

post-commit内容:
--------------------------------------------
#!/bin/sh
#修改为服务编码
export LANG=zh_CN.gb2312

#Set variable
REPOS="$1"
REV="$2"

SVN=/usr/bin/svn
WEB=/data/home/htdocs
LOG=/data/home/auto_svn.log

#update the code from the SVN
$SVN update $WEB --username username --password password --non-interactive

#......................
if [ $? == 0 ]
then

echo "$REPOS" "$REV" >> $LOG
echo `date` >> $LOG
echo "##############################" >> $LOG
fi
-----------------------------------------------
需要注意:
1、需要用export指定编码。
2、需要指定svn全路径。
3、代码CO出来之后,可以进行post-commit脚本的测试了。因为svn的hooks执行的时候不带有任何的环境变量,所以我们不能通过简单的 ./post-commit 进行代码的测试。必须要使用sudo su 等命令切换到svn或者apache服务器运行用户下,用下面的方法进行测试
Python代码
env – ./post-commit
==================================================================================
#!/bin/bash
export LANG=en_US.UTF-8
src=/data/webroot/ask.j1.com ##local checkout directory###
deswebroot=/data/wwwroot/ask
remoteip=210.14.70.4
/usr/local/svn/bin/svn update $src --username webapp --password | grep -v -i update|awk '{print $2}'| while read chfile
do
if [ -e $chfile ];then
if [ -f $chfile ];then
#chown ftp.ftp $chfile
dfile=$(echo $chfile |sed "s:$src\/::") ###only file name###
rsync -avz -e ssh --exclude-from=/data/svndata/ask.j1.com/exclude-file $src/$dfile root@$remoteip:$deswebroot/$dfile
else
#chown ftp.ftp $chfile
dfile=$(echo $chfile |sed "s:$src\/::")
rsync -auvz -e ssh --exclude-from=/data/svndata/ask.j1.com/exclude-file $src/$dfile/ root@$remoteip:$deswebroot/$dfile/
fi
fi
done

热点内容
比较便宜的云服务器 发布:2025-07-13 18:29:59 浏览:406
切换ftp 发布:2025-07-13 18:29:07 浏览:738
锐龙哪个配置最高画质 发布:2025-07-13 18:22:34 浏览:196
压缩机工作原理图 发布:2025-07-13 18:10:15 浏览:39
黑暗追求者安卓怎么联机 发布:2025-07-13 18:10:07 浏览:617
北大保安自学编程 发布:2025-07-13 18:09:58 浏览:858
java递归排列 发布:2025-07-13 18:02:43 浏览:473
轻量云服务器如何换成d盘 发布:2025-07-13 17:58:45 浏览:931
重置腾讯云服务器时间 发布:2025-07-13 17:54:55 浏览:326
aes256java加密 发布:2025-07-13 17:54:46 浏览:710