一、SVN hooks相关知识
SVN hooks即SVN钩子脚本是利用后台的管理命令和所需要使用的hooks提供的参数。来进行一些组合,满足的需求! 钩子脚本在每个repos的hooks目录下面。每个里面都有模板,名字如:pre-commit.tmpl等,要实现钩子脚本,即在hooks目录下创建批处理或者可执行文件,文件名与相应的钩子模板名同如:pre-commit.bat。
二、WebService
Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。很早就耳闻WebService,不过对其了解不多。这次的需要的操作是调用Jira系统的WebService,通过查相应资料获得WSDL的URL,再借用WSDL2JAVA工具生成客户端代码,将生成的代码导入eclipse,进行代码调用。
调用代码如下:
public class QSVerified {
public static final String UAT_VERIFIED = "10006";
public static final String QA_VERIFIED = "10008";
public static final String CLOSED = "6";
public static void main(String[] args) {
JiraSoapService cenericServices;
try {
cenericServices = new JiraSoapServiceServiceLocator().getJirasoapserviceV2();
String login = cenericServices.login("username", "password");
RemoteIssue issue = cenericServices.getIssue(login, args[0]);
String status = issue.getStatus();
if(UAT_VERIFIED.equals(status)||QA_VERIFIED.equals(status)
||CLOSED.equals(status)){
System.exit(1);
}else{
System.exit(0);
}
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteAuthenticationException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (java.rmi.RemoteException e) {
e.printStackTrace();
}
}
}
三、打jar包
需要将自己写的代码及WebService生成的客户端代码进行打包,打包命令:jar -cvf com/ QSVerified.jar,打包好后修改MANIFEST.MF文件,加上Main-Class及Class-Path,依赖包放在lib文件夹中,将QSVerified.jar及lib拷贝到hooks目录下。
四、在bat文件中执行jar包
在执行jar包时要注意加是jar的目录。
pre-commit.bat代码如下:
@echo off
set SVN_BINDIR=C:\"Program Files"\"VisualSVN Server"\bin
setlocal
set REPOS=%1
set TXN=%2
set first=1
rem check that logmessage not null
%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%" | findstr "." > nul
set s=%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%"
for /f "delims=" %%a in ('%s%') do ( if !first!==1 set str=%%a
set first=0)
set st=%str:*-=%
set prefix=QS-
set key=%prefix%%st:~0,5%
set temp=%st:~4,1%
if "%temp%"==" " set key=%prefix%%st:~0,4%
if %errorlevel% gtr 0 goto err
java -jar %REPOS%\hooks\QSVerified.jar %key%
if %errorlevel% gtr 0 goto err1
exit 0
:err1
echo The status of %key% is 'UAT Verified' or 'QA Verified' or 'Closed'! 1>&2
exit 1
:err
echo Please fill out log messages! 1>&2
exit 1
注意:bat中字符串的比较,变量需要加上引号,如"%s%"="abc"
分享到:
相关推荐
【MyEclipse+SVN+Jira开发工具集成】是一个高效的工作流程整合方案,它将三个重要的开发工具紧密地结合在一起,以提升团队协作效率和项目管理能力。MyEclipse作为一个强大的Java EE集成开发环境,提供了丰富的功能和...
atlassian-jira-subversion-plugin-3.0.2-jira8.jar svn与jira集成 支持Jira 8 版本 亲测v8.3.0可用
在 SVN 中,hooks 是一种强大的功能,它们是服务器端的脚本,可以在特定事件(如提交、更新等)发生时自动执行,以实现自定义的行为或限制。下面我们将详细讨论 SVN hooks 的相关知识点,以及如何利用它们来增强 SVN...
首先,SVN服务器是整个版本控制系统的基石,它存储所有版本的文件,并处理用户的提交、更新和其他操作。在描述中提到,SVN被安装在金山快盘上,这表明使用了云存储服务作为服务器的载体,以实现异地访问和同步工程。...
7. 在JIRA系统中的Issue详细信息界面,可以看到一个名为Subversion Commits的Tab,通过它可以看到与当前Issue相关的SVN提交记录。 JIRA Subversion plugin支持配置多个Subversion仓库。默认情况下,只配置了一个...
通过设置SVN权限,可以控制用户对仓库及文件夹的读写访问,实现精细化的权限管理。 9. **svn服务配置和管理**:管理员需要了解如何配置SVN服务器的端口、认证方式、日志记录以及备份策略。定期备份仓库,防止数据...
2. **关联必备条件**:确保SVN客户端已经正确配置了JIRA的URL和认证信息,以便在提交时能够自动关联到相应的JIRA issue。 #### 七、数据显示统计 集成后,JIRA可以显示每个issue相关的代码提交历史,包括提交者、...
Jenkins+Svn+Docker+SpringCloud实现可持续自动化微服务
本文将深入探讨“svn强制写日志hooks”这一主题,它与Subversion的钩子脚本(hooks)密切相关,这些脚本允许在执行特定操作时执行自定义的服务器端逻辑,例如提交日志消息。 首先,了解“hooks”在svn中的作用至关...
在版本控制系统Subversion(SVN)中,"hook"钩子是一种强大的机制,允许管理员执行自定义脚本或程序来实现特定的自动化操作。当SVN仓库中的某些事件发生时,比如提交、更新或者合并,这些钩子会被触发。在这个场景中...
### Jenkins + SVN + Maven + Java 自动化部署详解(Windows版) #### 一、Jenkins 安装与配置 **1. Jenkins 安装** - **下载安装**: 首先,从官方网址 (https://jenkins.io/download/) 下载最新的Jenkins安装包...
【svn提交日志导出工具v4.5】是一款基于Java Swing界面的实用程序,专为开发者设计,用于轻松地导出Subversion(SVN)仓库的提交日志。该工具利用了强大的SVNKit库,这是一个纯Java实现的SVN客户端库,使开发者能够...
《svn提交日志导出工具v4.6详解》 在软件版本控制的世界里,Subversion(简称svn)是一款广泛使用的版本控制系统,它允许开发者跟踪和管理代码的修改历史,协同工作并保持代码库的一致性。对于svn的日常管理,有一...
在命令行,使用“svn commit -m '提交信息'”。 【解决冲突】:如果多人同时修改了同一份文件,SVN会标记出冲突,用户需要手动解决冲突后再提交。 【分支与合并】:SVN支持分支和合并功能,允许开发人员在不影响...
指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间...
SVN,全称为Subversion,是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更历史。在软件开发过程中,SVN可以帮助团队协同工作,跟踪每个成员对代码的修改,便于代码审查、合并和回溯。下面...
SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的历史记录。它允许团队协作,跟踪文件的更改,合并不同用户的修改,并且可以轻松回滚到以前的版本。在这个“SVN安装包+中文...
标题中的“SVN插件+win7 64+android developer tools”暗示了这是一个关于在Windows 7 64位操作系统环境下,使用SVN(Subversion)版本控制系统与Android Developer Tools进行协同开发的教程。SVN是源代码管理工具,...