`

SVN hooks+Jira WebService实现控制日志信息提交总结

    博客分类:
  • SVN
阅读更多
一、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开发工具集成说明.doc

    【MyEclipse+SVN+Jira开发工具集成】是一个高效的工作流程整合方案,它将三个重要的开发工具紧密地结合在一起,以提升团队协作效率和项目管理能力。MyEclipse作为一个强大的Java EE集成开发环境,提供了丰富的功能和...

    Jira8 svn集成插件

    atlassian-jira-subversion-plugin-3.0.2-jira8.jar svn与jira集成 支持Jira 8 版本 亲测v8.3.0可用

    svn hooks 全集,包含常用示例代码

    在 SVN 中,hooks 是一种强大的功能,它们是服务器端的脚本,可以在特定事件(如提交、更新等)发生时自动执行,以实现自定义的行为或限制。下面我们将详细讨论 SVN hooks 的相关知识点,以及如何利用它们来增强 SVN...

    svn服务器+svn客户端+svn服务器配置

    首先,SVN服务器是整个版本控制系统的基石,它存储所有版本的文件,并处理用户的提交、更新和其他操作。在描述中提到,SVN被安装在金山快盘上,这表明使用了云存储服务作为服务器的载体,以实现异地访问和同步工程。...

    jira和svn的集成

    7. 在JIRA系统中的Issue详细信息界面,可以看到一个名为Subversion Commits的Tab,通过它可以看到与当前Issue相关的SVN提交记录。 JIRA Subversion plugin支持配置多个Subversion仓库。默认情况下,只配置了一个...

    svn工具+文档

    通过设置SVN权限,可以控制用户对仓库及文件夹的读写访问,实现精细化的权限管理。 9. **svn服务配置和管理**:管理员需要了解如何配置SVN服务器的端口、认证方式、日志记录以及备份策略。定期备份仓库,防止数据...

    JIRA集成SVN配置说明

    2. **关联必备条件**:确保SVN客户端已经正确配置了JIRA的URL和认证信息,以便在提交时能够自动关联到相应的JIRA issue。 #### 七、数据显示统计 集成后,JIRA可以显示每个issue相关的代码提交历史,包括提交者、...

    Jenkins+Svn+Docker+SpringCloud实现可持续自动化微服务

    Jenkins+Svn+Docker+SpringCloud实现可持续自动化微服务

    svn强制写日志hooks

    本文将深入探讨“svn强制写日志hooks”这一主题,它与Subversion的钩子脚本(hooks)密切相关,这些脚本允许在执行特定操作时执行自定义的服务器端逻辑,例如提交日志消息。 首先,了解“hooks”在svn中的作用至关...

    SVN里通过hook钩子填写日志信息

    在版本控制系统Subversion(SVN)中,"hook"钩子是一种强大的机制,允许管理员执行自定义脚本或程序来实现特定的自动化操作。当SVN仓库中的某些事件发生时,比如提交、更新或者合并,这些钩子会被触发。在这个场景中...

    jenkins+svn+maven+java-配置+安装+部署(windows版)

    ### Jenkins + SVN + Maven + Java 自动化部署详解(Windows版) #### 一、Jenkins 安装与配置 **1. Jenkins 安装** - **下载安装**: 首先,从官方网址 (https://jenkins.io/download/) 下载最新的Jenkins安装包...

    svn提交日志导出工具v4.6

    《svn提交日志导出工具v4.6详解》 在软件版本控制的世界里,Subversion(简称svn)是一款广泛使用的版本控制系统,它允许开发者跟踪和管理代码的修改历史,协同工作并保持代码库的一致性。对于svn的日常管理,有一...

    SVN安装+拉取代码.mov.zip

    在命令行,使用“svn commit -m '提交信息'”。 【解决冲突】:如果多人同时修改了同一份文件,SVN会标记出冲突,用户需要手动解决冲突后再提交。 【分支与合并】:SVN支持分支和合并功能,允许开发人员在不影响...

    python获取SVN日志

    指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间...

    svn客户端+服务器+myeclipse的svn插件+使用说明

    SVN,全称为Subversion,是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更历史。在软件开发过程中,SVN可以帮助团队协同工作,跟踪每个成员对代码的修改,便于代码审查、合并和回溯。下面...

    SVN 安装包+中文插件

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的历史记录。它允许团队协作,跟踪文件的更改,合并不同用户的修改,并且可以轻松回滚到以前的版本。在这个“SVN安装包+中文...

    SVN插件+win7 64+android developer tools

    标题中的“SVN插件+win7 64+android developer tools”暗示了这是一个关于在Windows 7 64位操作系统环境下,使用SVN(Subversion)版本控制系统与Android Developer Tools进行协同开发的教程。SVN是源代码管理工具,...

    svn+ldap+sasl认证(svn通过ldap用户进行认证登陆)

    svn+ldap+sasl 认证是指在 svn 服务器中使用 ldap 服务器进行用户认证,实现 svn 服务器的安全认证机制。ldap 服务器是一个目录服务,用于存储和管理用户信息,sasl 则是一个安全认证协议,用于在客户端和服务器之间...

Global site tag (gtag.js) - Google Analytics