Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS如何选择与生成关联的签入?_Tfs_Tfsbuild_Tfs 2015 - Fatal编程技术网

TFS如何选择与生成关联的签入?

TFS如何选择与生成关联的签入?,tfs,tfsbuild,tfs-2015,Tfs,Tfsbuild,Tfs 2015,我们的构建通常有大量的工作项和与之相关的提交,我无法告诉TFS如何决定要添加什么。我们正在使用TFS 2015更新3和TFVC 当构建运行时,它从TFVC的分支和文件夹中的某个位置获取代码。通常,类似于“root\dev\src\component name”的内容,通过这种方式,我们可以避免获取存储库中的所有代码,并将CI设置为运行,因此此文件夹中的任何更改都将导致CI生成运行 我们还每天运行构建,这些构建运行更多测试,并创建一个由TFS发布管理使用的发布包。我希望在设置此构建的存储库时定义的

我们的构建通常有大量的工作项和与之相关的提交,我无法告诉TFS如何决定要添加什么。我们正在使用TFS 2015更新3和TFVC

当构建运行时,它从TFVC的分支和文件夹中的某个位置获取代码。通常,类似于“root\dev\src\component name”的内容,通过这种方式,我们可以避免获取存储库中的所有代码,并将CI设置为运行,因此此文件夹中的任何更改都将导致CI生成运行

我们还每天运行构建,这些构建运行更多测试,并创建一个由TFS发布管理使用的发布包。我希望在设置此构建的存储库时定义的文件夹中对代码的任何更改都会包含在构建的相关更改集中。我还希望在这些分支之外签入的任何更改都不会关联。但事实并非如此。我们可以看到整个项目的提交

有人知道这是怎么回事吗

我不确定这是否应该出现在问题或答案中,但我发现了一些额外的信息,感谢下面答案中提供的提示


似乎源设置将采用存储库设置的映射文件夹之间的公共根,因此,如果我有两个文件夹$/Relo/Dev/B1/src/Claims.Services和$/Relo/Dev/B1/src/PSScripts,它将采用公共根$/Relo/Dev/B1/src作为源设置,并将该文件夹中的任何更改包含在构建中。有人能证实这一点吗?当然,这不是我想要的。在构建定义的历史选项卡中,如果我查看差异,我可以在json中看到一个字段“defaultBranch”,它似乎是控制该字段的值,是否有任何方法可以直接更新该字段?

TFS根据源存储库映射(build vNext)确定应该映射到构建的更改集在生成定义和上次成功生成中

因此,您将看到一个变更集列表,其中包含自最新成功构建以来提交到映射文件夹的最低公共基中的所有,包括其所有子代。每当您获得一个成功的构建(我希望它比失败的构建更频繁;-)时,列表就会缩短,并且只显示最后一次签入

下面的示例映射将导致对$/Relo/Dev/B1/src以下的任何内容进行任何更改集(因为它是最低的公共基础):

  • $/Relo/Dev/B1/src/Claims.Services
  • $/Relo/Dev/B1/src/PSScripts
类似地,它将拾取上述变更集的所有相关工作项


这就是应该发生的事情。如果您看到其他内容,我将仔细查看构建定义的存储库映射或源设置。

@Noel-我猜您使用的是vNext构建,而不是XAML构建。还是混合使用XAML和vNext

通常,计划的TFS生成将关联上次成功运行同一生成时未关联的所有更改


我建议您再次检查CI build和Daily build的源文件夹位置是否相同?

您所说的“源设置”是什么意思?您是指存储库映射吗?我有两个文件夹将$/Relo/Dev/B1/src/Claims.Services映射到$(build.sourcesDirectory\Claims.Services)和$/Relo/Dev/B1/src/PSScripts映射到$(build.sourcesDirectory\PSSCripts,但我有与生成关联的更改集,其中包括来自这些文件夹外部的文件,而不是来自内部的文件。是的,存储库映射在生成XAML生成中称为源设置(抱歉,我仍在旧系统上)-我已更新答案以包含此名称。您的更改集是否可能包含来自某个映射文件夹的后代的文件?否,正如我在编辑问题时试图解释的那样,TFS Build似乎将更改“源分支”或“默认分支”到映射存储库中的最低公用文件夹。在我的示例“注释”部分中,最低公用文件夹是“$/Relo/Dev/B1/src”这当然是我的根源代码文件夹,因此包含了构建之间的所有更改。抱歉@Noel,我忘记了映射存储库中的公共基础。这也让我感到疑惑:-)。我们正在使用vNext生成。@Noel-是否只有两个生成定义-1用于CI,1用于Daily?是否确认在生成定义的触发器部分下,两个生成定义的路径相同?当前没有设置触发器。我正在手动运行它们。此同一解决方案有多个定义n、 但我相信我已经进一步缩小了问题的范围,正如我在问题中添加的附加信息中所述。好的。我将对您的场景进行一次分析。您提到您有一个CI构建。CI构建是触发器设置为“持续集成”的地方。我确实有一个CI生成,但这不是我所说的生成。我所说的生成没有任何触发器,它是手动运行的