如何让 Team City 检查分支的最新版本 - 无论标签是否存在

How to make Team City check out the latest revision of a branch - regardles if a tag exists

出于某种原因,在我们标记发布后,TC 不再检测对开发分支的更改。直到上周五,还没有标签,而 TC 在这之前一直建设良好。然后,我们添加了一个标记来标记 spring 的结尾,之后,Team City 没有接收到任何更改。触发手动 运行 只会检出被标记的相同修订版。我不明白为什么标记发布会影响 VCS 过程,因为那里没有任何变化。

构建日志的相关输出

[10:18:29][Compute revision for 'app-develop branch'] Upper limit revision: 1ec51e6c701548753678c18c20e24c87a6c189f7
[10:18:29][Compute revision for 'app-develop branch'] Latest commit attached to build configuration: 1ec51e6c701548753678c18c20e24c87a6c189f7
[10:18:29][Compute revision for 'app-develop branch'] Computed revision: 1ec51e6c701548753678c18c20e24c87a6c189f7

当我手动ssh进入CI服务器并进入构建目录时,我看到可以看到远程develop分支,但是本地没有更新:

* cf2c86a - (origin/develop) Handle special users when formatting names (67 minutes ago) <Carl-Erik Kopseng>
* 70cadf0 - Fix bug in formatting (82 minutes ago) <Carl-Erik Kopseng>
* 8f24c0d - Move user formatting util over to domain class (83 minutes ago) <Carl-Erik Kopseng>
* 1ec51e6 - (HEAD, tag: sprint-15-demo, develop) Merge pull request #826 from mycomp/nim-605 (7 weeks ago) <Carl-Erik Kopseng>

将默认分支设置为 refs/heads/develop 而不是 develop

怀疑 发生的事情是它找不到你的默认分支,因为 develop 不是 "valid" 分支规范,所以它搜索其他分支和标签。它找到一个,并使用它。当没有其他 branches/tags 存在时,这不是问题。

我将添加另一个答案,因为@Amy 似乎 的答案在一种情况下有效,但不适用于另一个项目。这个其他项目已经将默认分支设置为 refs/heads/master.

的正确(默认)值

最终对我有用的是 tedious solution found on the TC community:

  • 分离现有的 VCS 根目录
  • 使用完全相同的设置创建一个新的

是的,这不应该有什么不同,但确实有。

我怀疑谜底可能是我们上周恢复到以前的配置。这使得构建计数器不正确(DB 与配置),这可能混淆了历史构建和所有爵士乐的概念。无论如何,从用户的角度来看肯定是一个错误。