Can';我不能让哈德逊的SVN排除系统发挥作用

Can';我不能让哈德逊的SVN排除系统发挥作用,svn,hudson,Svn,Hudson,假设Hudson作业检出2个SVN目录: https://foo.com/packages (root is https://foo.com/packages) -> "packages" in workspace https://bar.com/temp/Hudson (root is https://bar.com/temp) -> "Hudson" in workspace 我尝试了不同的方法,在网上浏览答案,但我仍然无法让这两种方法发挥作用: 1) 防止“Hudson”中的

假设Hudson作业检出2个SVN目录:

https://foo.com/packages (root is https://foo.com/packages) -> "packages" in workspace
https://bar.com/temp/Hudson (root is https://bar.com/temp) -> "Hudson" in workspace
我尝试了不同的方法,在网上浏览答案,但我仍然无法让这两种方法发挥作用:

1) 防止“Hudson”中的任何提交触发生成: 我在“排除区域”中尝试了几种路径组合,但没有成功

2) 防止消息中包含“CR:”的任何提交触发生成: 我尝试了“\bCR:\b”和“Excluded Commit Messages”字段中的其他内容,但不起作用


谢谢

为什么不试试另一个方向?在SVN中编写一个钩子脚本,仅在需要时调用Hudson。对于来自Hudson的提交,根本不触发构建。

1-1)一种简单但有点脏的方法是,有两个作业,第一个作业检测一个存储库中的更改并触发第二个作业。第二个作业下载所有需要的源代码并运行构建

赞成:容易理解,不需要太多的摆弄。 缺点:您必须从一个存储库签出两次,或者找到可靠的方法将源从job1复制到job2(例如克隆工作区SCM),两个作业

1-2)在Hudson中配置一个存储库,并在第一个构建步骤中从第二个存储库中检出源

赞成:一份工作,简单的解决方案 缺点:您可能需要对密码进行硬编码,但忽略了使用Hudson支持subversion的好处

2)
\bCR:\b
看起来不像正则表达式。我建议您尝试类似于
*CR:.*
的方法,如果CR:必须位于行的开头
^CR.*


帮助我深入研究正则表达式,但它还包含一个初学者指南。

正则表达式必须与被排除的路径完全匹配。它不能只是目录的名称。此外,它还必须包含前导斜杠

例如,假设一个构建提交了库,并且该提交不应触发另一个构建

SVN中目录的位置:

http://subversion.xyz.com/MyProject/lib
“排除区域”框中的内容:

/MyProject/lib/.*

很好的一点,这可能会奏效,但1)我没有回购协议的管理员权限,2)SVN不必了解或处理构建系统(这些系统实际上是独立的,我不想添加更多的依赖项)。Hudson提供了一个看似干净的解决方案,我想使用它。对于#1,这又是一个不错的解决方案,我将再等一会儿,看看是否有人能想出“排除区域”的正确语法。对于#2,我将尝试您的建议。对于排除的区域,尝试类似的语法。根据示例,您必须使用存储库中的路径(不包括存储库URL)。我在我的答案中添加了一个正则表达式的链接。对于1-1,你可以设置作业以共享一个工作区(现在是自定义工作区,也许有一天会以自动方式:)@Michael Brewer Davis:当你使用共享工作区时,你需要确保两个作业中只有一个运行。您可以使用logs and Latchs插件来实现这一点。我不喜欢两份工作使用同一个工作空间的想法。所以我更喜欢使用克隆工作区插件。