I have currently a bit a pain-point with using Versionized Settings due to it's "chicken-egg-problem". My goal is to store all my TeamCity related information within my Git repository, this includes the VcsRoot used by the "Versionized Settings" feature. I want developers to be able to adjust these settings via Git workflows and TC should pick them up.
To configure a new project in TC, you need to manually create the VcsRoot first. Then you can enable the Versionized Settings feature. At this point, if you named everything correctly, TeamCity detects that the VcsRoot you created manually, is actually stored in Git as well. It shows this properly in the UI:
Unfortunately, the actual settings of this VcsRoot in Git are not picked up in my case. I changed the branchSpec within my Kotlin DSL with later commits, but the UI still shows old settings (while indicating correctly that there was a change in the history).
I do not want to use DslContext.settingsRoot within my Build Configurations because this would make the TeamCity UI "master of data" but we want the code be master of data. Not all developers are allowed to change project configurations via the UI, but still we want to allow it through code. We have code reviews with approvals which ensures changes are done properly.
Is it potentially a bug, misconfiguration or other problem that TeamCity does not actually change the Vcs Settings from Git even though it detects from the Synchronizing that there was a change? Is this potentially even an unsupported workflow?
Any help on this topic is appreciated.