Jenkins中SVN“包含区域”的格式

时间:2011-09-01 13:16:50

标签: svn continuous-integration jenkins

在Jenkins项目中设置“包含区域”时,帮助文本会提到:

  

如果设置,并且Jenkins设置为轮询更改,Jenkins将在确定是否需要触发构建时忽略此列表中不存在的任何文件和/或文件夹。   每个包含都使用正则表达式模式匹配,并且必须用新行分隔。

     

当您需要签出整个资源进行构建时,这非常有用,但只想在子集发生更改时进行构建。

     

/中继/ MyApp的/ C / LIBRARY1 /.*
      /中继/ MyApp的/ C / library2 /.*

     

如果检出/ trunk / myapp,则只有在c / library1和c / library2子树发生更改时才会进行构建。   如果还指定了排除的区域,则当文件位于包含列表中而不在排除列表中时,不会忽略该文件。

我仍然不太清楚这个“资源”应该是什么。

我们假设我检查了存储库的一部分:https://svn.mydomain.com/repos/projects/myfancyproject/trunk

我们还假设我将其检出一个名为“theproject”的文件夹

现在,让我们假设我只希望在回购的“documents / cat-pictures /”文件夹中发生变化时触发构建。

我应该投入:

  1. /中继/文档/ CAT-图片/.*
  2. /文档/ CAT-图片/.*
  3. /回购/项目/ myfancyproject /中继/文档/ CAT-图片/.*
  4. 文件/ CAT-图片/.*
  5. 躯干/文档/ CAT-图片/.*
  6. 甚至:数字1到5带有“theproject /”前缀

2 个答案:

答案 0 :(得分:10)

如果您的存储库是

https://svn.mydomain.com/repos/projects/myfancyproject/trunk

并且您只想在documents/cat-pictures中更改某些内容时进行构建,并将以下内容添加到您的包含列表中:

/trunk/documents/cat-pictures/*

列表中的1。

在颠覆中,“trunk”,“tags”和“branches”只是文件夹,虽然它们似乎已成为标准名称,但如果你想要它们可以被称为“猫”,“狗”和“鸟”

您的存储库的根位于https://svn.mydomain.com/repos/projects/myfancyproject/,因此您将/trunk/documents/cat-pictures作为包含的区域。

至少这是我的理解。

答案 1 :(得分:3)

Sagar的回答(你名单上排名第一)对我不起作用。什么工作是整个相对URL路径(存储库根目录之后的所有内容),这是svn log -v中可以看到的已更改路径

所以我的Jenkins 包含区域,仅包括" RC"标记:

/code/products/foo/tags/.*RC.*

两个示例修订版,显示了已更改的路径,但不匹配:

> svn log -v -l2 svn+ssh://svn.foo.com/svnroot/code/products/foo/tags
------------------------------------------------------------------------
r175564 | joe | 2016-04-20 09:21:34 
Changed paths:
   A /code/products/foo/tags/1.1-RC1 

1.1 Release Candidate 1
------------------------------------------------------------------------
r175530 | jane | 2016-04-19 09:40:18
Changed paths:
   A /code/products/foo/tags/1.0

1.0 Release
------------------------------------------------------------------------

您还可以在svn info中找到相对网址:

> svn info svn+ssh://svn.foo.com/svnroot/code/products/foo/tags
Path: tags
URL: svn+ssh://svn.foo.com/svnroot/code/products/foo/tags
Relative URL: ^/code/products/foo/tags
Repository Root: svn+ssh://svn.foo.com/svnroot