TeamCity构建日志显示两个VCS根,如何定位并移除多余根?
如何定位并移除TeamCity中多余的VCS根(新手友好指南)
作为刚上手TeamCity的新手,你遇到的这个问题其实很常见——之前选择"Apply to Release package only"的操作大概率创建了VCS根的本地副本,而这个副本可能藏在构建配置、模板或者继承关系里,不是直接显示在项目的VCS根列表里。下面一步步帮你定位并解决:
1. 先排查具体的构建配置
多余的VCS根可能直接绑定在某个特定的构建配置上,而不是项目级的设置里:
- 进入你的"RRR Release Branch"项目下的每个构建配置(尤其是和Release包相关的)
- 切换到VCS Settings选项卡,查看已关联的VCS根列表,找ID为
SSS_MMM的那个 - 如果找到,直接点击旁边的移除按钮即可
2. 检查构建模板的关联
如果你的项目使用了构建模板,模板里可能自带了VCS根配置:
- 找到项目使用的模板(在构建配置的"General Settings"里能看到关联的模板)
- 进入模板的VCS Settings,看看有没有
SSS_MMM这个VCS根 - 如果是模板带来的,你可以选择取消模板的继承(谨慎操作,可能影响其他使用该模板的配置),或者修改模板移除多余的VCS根
3. 用TeamCity的全局搜索快速定位
TeamCity的搜索功能是新手救星,直接帮你找到藏在任何角落的配置:
- 在页面右上角的搜索框里输入
SSS_MMM - 搜索结果会列出所有包含这个ID的项目、构建配置、VCS根或者模板,点击进去就能直接处理
4. 查看继承的VCS根
你提到第二个VCS根的parent id是SSS_MMM,它可能是从父项目或者模板继承来的:
- 进入项目的VCS根列表页面,点击右上角的Show inherited按钮
- 这时候会显示所有从上层继承来的VCS根,找到
SSS_MMM对应的项 - 如果是继承的,你可以选择Override(覆盖)然后删除,或者直接在父项目里移除这个根(如果父项目不需要的话)
5. 清理之前创建的VCS根副本
之前选择"Apply to Release package only"时,TeamCity自动创建了一个VCS根的副本,即使后来改成"Apply to all...",这个副本依然存在:
- 回到项目的VCS根列表,仔细找名称类似"RRR Release Branch"的项(可能后缀有细微差别)
- 查看它的ID是否为
SSS_MMM,如果是,直接删除这个副本即可
关于那个持续出现的提示
那个提示的本质是:当你修改一个被多个构建配置使用的VCS根时,TeamCity会让你选择是修改原根并应用到所有关联配置,还是创建一个副本只应用到当前配置。你之前选了创建副本,就生成了多余的根;后来改成应用到所有,但副本没删除,所以问题还在。以后修改时,确认自己要改原根还是创建副本,就能避免这个问题。
最后,修改完成后跑一次测试构建,看日志里是不是只剩你需要的那个VCS根啦!
内容的提问来源于stack exchange,提问作者TeamCityPain
相关产品推荐
相关产品推荐

