Subversion/TortoiseSVN标记并指示Jenkins通过标记进行构建



希望有人能为我澄清

当前活动存储库URL

在任何时候,我都会使用不止一个存储库,所以我需要在多个存储库URL之间切换。如何更改当前活动存储库的URL?例如,我从存储库A签出文件,我会在TortoiseSVN客户端上指定存储库A的URL。

当我移动到另一个文件夹,在那里我想将新文件"添加"到另一存储库,即存储库B时,我如何更改客户端,使其指向存储库B?它似乎卡在存储库A的URL上。

标记

我熟悉TortoiseCVS,通常当你用CVS/TortoiseCV标记文件夹时,它只会将标记(即标签)应用于文件。它不会在另一个文件夹中创建一个全新的副本。TortoiseSVN/Subversion似乎有所不同。标记文件夹/文件的选项似乎与分支有关。如果我创建了一个标记,我可以选择指定要将分支复制到的位置。

这到底是怎么回事?我不能只指定一个标记而不创建副本吗?我只想应用一个标签(就像在TortoiseCVS/CVS中一样)

Jenkins-通过标签构建

是否可以指示詹金斯使用标签结账?我找不到任何关于如何将jenkins配置为签出并通过标记构建的信息。关于如何在构建后将jenkins配置为标记,有很多信息,但我对如何通过标记(使用subversion存储库和CVS存储库)进行构建感兴趣。

感谢

感谢

我只是想谈谈你的标签问题。不要担心如何Subversion标记。它使用svn copy命令进行标记。你只需要知道这些。

Subversion可以将树复制到tags目录下的一个目录,但它可以像CVS中的标签一样使用——一个由易于记忆的标签标记的特定时间点的存储库快照。

事实上,Subversion标记在很多方面都很优越:

  • Subversion标记是即时的。在CVS中,您必须等待CVS标记每个文件,这可能需要很长时间,有时甚至超过一个小时。在Subversion中,整个操作立即发生
  • 在Subversion中,标签有一个历史记录,你可以看到谁创建了标签以及为什么创建。您甚至可以查看该标记是否已被修改以及由谁修改

唯一的问题是标签不能被锁定,所以人们可以签出标签并修改它们。但是,这可以通过预提交触发器来解决。

詹金斯

如果您已经在Subversion下有一个Jenkins项目,您可以将Jenkins作业复制到一个新作业中,并将Jenkins使用的URL修改为标签的URL。在Subversion中,与CVS不同,签出标签、分支或从主干中签出没有区别:这只是某种URL

  • 当您谈到更改存储库URL时,您实际上提到了3种不同的情况
    1. 您想在同一个repo中使用另一个URL(branched/trunk到/stranch/name服务器端,想在WC中镜像此更改以便使用您的分支):svn help switch,1-st form-svn switch ^/branches/1.x-release
    2. 树中没有任何更改,只是由于某些原因更改了的URL代码的相同点(svn://host/path回购更改为http://host/path或更改了主机名…):svn帮助重新定位-svn relocate http://www.example.com/repo/project svn://svn.example.com/repo/project
    3. 你想使用独立的、与旧的、新的、repo无关的URL:只需签出新的URL,不要重新发明轮子
  • 子版本中的标记/分支始终基于路径,您不能仅添加元信息。对于每个分支/标记,您总是在有条件的位置创建源的"廉价副本"(/分支和/标记是最常用和最可接受的协议)
  • Jenkins-如果你可以使用Jenkins的任何存储库URL(我对此一无所知),你可以使用标签URL,就像存储库的任何其他URL一样,但是

我找不到任何关于如何配置詹金斯结账的信息并通过标签构建

由于CI中使用的操作顺序颠倒。标签(有条件地)是未修改的标签,标记一些"已达到并测试状态",因此-我们在branch|trunk中测试普通修订,而标签仅可逆,在测试后通过了测试。同一代码上的另一个测试链只是对结果没有任何有用的东西

相关内容

最新更新