TFS 如何选择与构建关联的签入?
How does TFS choose which check-ins to associate with a build?
我们的构建通常有一大堆工作项和与之相关的提交,我不知道 TFS 如何确定要添加的内容。我们正在使用 TFS 2015 更新 3 和 TFVC。
当构建 运行s 时,它从 TFVC 的分支和文件夹中的某个位置获取代码。通常,像 "root\dev\src\component name" 这样的东西,我们可以避免获取存储库中的所有代码,并且我们将 CI 设置为 运行,以便此文件夹中的任何更改都会导致 CI 构建 运行ning.
我们还 运行 每天构建 运行 更多测试并创建 TFS 发布管理使用的发布包。我希望在为此构建设置存储库时定义的文件夹内代码的任何更改都包含在构建的关联更改集中。我还希望在这些分支之外签入的任何更改都不会关联。但这种情况并非如此。我们看到整个项目的提交。
有人知道这是怎么回事吗?
我不确定这是否应该放在问题或答案中,但由于下面答案中提供的提示,我找到了一些额外的信息。
似乎源设置将采用存储库设置的映射文件夹之间的公共根目录,因此如果我有 2 个文件夹 $/Relo/Dev/B1/src/Claims.Services 和 $/Relo/Dev/B1/src/PSScripts 它将采用公共目录root $/Relo/Dev/B1/src 作为源设置,并在构建中包含该文件夹中的任何更改。谁能证实这一点?当然,这不是我想要发生的事情。在构建定义的历史选项卡中,如果我查看差异,我可以在 json 中看到一个字段 "defaultBranch",这似乎是控制它的值,有没有办法直接更新这个字段?
TFS 根据构建定义中的源存储库映射(构建 vNext)和最后一次成功构建来确定应将哪些变更集映射到构建。
因此,您将看到一个变更集列表,其中包含在映射文件夹 any 的最低公共基础中提交的文件 including他们所有的后代,自最近的成功构建以来。每当您获得成功的构建(我希望它比失败的构建更频繁 ;-))列表将缩短并且只显示最后一次签入。
下面的示例映射将导致对低于 $/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 的源文件夹位置是否相同?
我们的构建通常有一大堆工作项和与之相关的提交,我不知道 TFS 如何确定要添加的内容。我们正在使用 TFS 2015 更新 3 和 TFVC。
当构建 运行s 时,它从 TFVC 的分支和文件夹中的某个位置获取代码。通常,像 "root\dev\src\component name" 这样的东西,我们可以避免获取存储库中的所有代码,并且我们将 CI 设置为 运行,以便此文件夹中的任何更改都会导致 CI 构建 运行ning.
我们还 运行 每天构建 运行 更多测试并创建 TFS 发布管理使用的发布包。我希望在为此构建设置存储库时定义的文件夹内代码的任何更改都包含在构建的关联更改集中。我还希望在这些分支之外签入的任何更改都不会关联。但这种情况并非如此。我们看到整个项目的提交。
有人知道这是怎么回事吗?
我不确定这是否应该放在问题或答案中,但由于下面答案中提供的提示,我找到了一些额外的信息。
似乎源设置将采用存储库设置的映射文件夹之间的公共根目录,因此如果我有 2 个文件夹 $/Relo/Dev/B1/src/Claims.Services 和 $/Relo/Dev/B1/src/PSScripts 它将采用公共目录root $/Relo/Dev/B1/src 作为源设置,并在构建中包含该文件夹中的任何更改。谁能证实这一点?当然,这不是我想要发生的事情。在构建定义的历史选项卡中,如果我查看差异,我可以在 json 中看到一个字段 "defaultBranch",这似乎是控制它的值,有没有办法直接更新这个字段?
TFS 根据构建定义中的源存储库映射(构建 vNext)和最后一次成功构建来确定应将哪些变更集映射到构建。
因此,您将看到一个变更集列表,其中包含在映射文件夹 any 的最低公共基础中提交的文件 including他们所有的后代,自最近的成功构建以来。每当您获得成功的构建(我希望它比失败的构建更频繁 ;-))列表将缩短并且只显示最后一次签入。
下面的示例映射将导致对低于 $/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 的源文件夹位置是否相同?