|
Project
|
TeamCity
|
|
Priority
|
Critical |
|
Type
|
Feature |
|
State
|
Fixed |
|
Assignee
|
Olesya Smirnova |
|
Subsystem
|
Version Control |
|
Affected versions
|
Build 1574 |
|
Fix versions
|
Benares EAP (5433) |
|
Fixed in build
|
17577 |
If my understanding is correct this limits build configurations to a single line in the source tree which limits their functionality.
Example
=
Project Foosvn://server/foo/trunk
svn://server/foo/branches/REL-1.2.7
I could setup a project with a VCS root of svn://server/foo and setup both build configurations under that, relative to trunk and branches/REL-1.2.7 but then the report of what files changed for a given build will include all the changes under the VCS root and not only files within the root that is relevant to that build configuration.
Ideally, TeamCity would work this way. See the example projects & build configs below:
Project: Compile Build libraries Build Applications
build config: main =if successful do this => main =if successful do this => main
build config: dev1 =if successful do this => dev1 =if successful do this => dev1
build config: dev2 =if successful do this => dev2 =if successful do this => dev2
The main, dev1, dev2 configs represent Perforce branches.
So, what we would like is the ability to have each build config have its own SCM sandbox and the project simply be a container for the build configs.
We would like a project to be a container for a specific application/project with its build configs having the ability to build from different SCM branches. We would like to see something like what I have attached.
A project configuration may continue to have VCS roots.
Additionally, a build configuration may have VCS roots. If it does, both the project and build configuration VCS roots are used for builds.
This would allow something like the following:
Project: TeamCity
Build Config: Agra Bug Fixes
Build Config VCS: svn://svnserver/teamcity/branches/agra
Build Config: Benares
Build Config VCS: svn://svnserver/teamcity/trunk
The project is TeamCity in both cases but the build configuration determines where the source for the project is obtained. Without this feature, we have to do something more like:
Project: TeamCity Agra
Project VCS: svn://svnserver/teamcity/branches/agra
(build configs)
Project: TeamCity Benares
Project VCS: svn://svnserver/teamcity/trunk
(build configs)
which forces projects to be organized by release instead of project.
Please consider adding the possibility to define VCS roots globally and use them in multiple projects/builds.
Current development version already has some support for the VCS roots sharing between projects. The draft documentation for the 3.0 version has some to catch up with the already implemented state.
Our current approach is as follows:
How well does such approach suit your needs?