Version Control Integration
TeamCity integrates with a number of the most frequently used Version Control Systems, from which it obtains the source files to create your builds.
Tracking Changes
Developers' changes are a vital attribute of any build, and they are quickly accessible from any build-related place in TeamCity UI. The information is conveniently displayed:
- changes are grouped by user
- the level of detail ranges from a Project-wide change log to a single modified line.
-
You can view and track changes status in several ways both in your IDE and in the web UI.
- observe both actual changes that are already included in the build and pending changes
-
- Track the changes on the project level in a project-wide Change Log or view build configuration changes.
-
- View status of your changes on the My Changes page. For each change you can see whether there is a successful build with this change, per build configuration.
-
- You can specify patterns to create links from change comments to external tools.
- navigate to the source code and view file diffs on the web
File Diffs on the Web
View file differences on the web just like in the IDE and navigate to the project source base from the web.
Fisheye integration now allows you to view the file diffs on the web.
Use Several VCS Roots for a Single Build
TeamCity provides a really interesting possibility - you can use several different VCS roots for a single build. For example, the majority of your project sources may be located in Perforce, and several plugins in Subversion. TeamCity allows to configure your project to use both Perforce and Subversion sources simultaneously (you can specify target directories for each VCS via checkout rules).
VCS Triggering Possibilities
TeamCity constantly scans all of the build configurations' VCS roots and triggers builds if changes are found. You can also configure rules that prevent build triggering for specific paths, file types, or particular users.
TeamCity supports "quiet period" - the amount of time to be passed since the last detected change till TeamCity starts the build. This can be used to ensure a build is not triggered in the middle of non-atomic checkins consisting of several VCS checkins (or when several VCS roots are involved in commit)
VCS Labeling
TeamCity can optionally add a label into Version Control for the sources used for a particular build. You can choose to apply the VCS label for all builds or only for successful ones.
In addition to automatic build labeling, you can also manually label the sources used for a build by clicking the Label this build sources link of the Build Results page.
TeamCity has integrated labeling for the following Version Control Systems:
- IBM Rational ClearCase (Base and UCM)
- CVS
- Perfore
- Borland StarTeam
- Subversion
TFS sources labeling is supported.

Flexible VCS Configuration
You can reuse common VCS settings between build configurations: configure VCS root and attach it to the desired build configurations plus benefit from a number of additional options such as limiting the files checked out in each.
TeamCity now supports integration with external changes viewers such as Fisheye letting you view the changes in an external browser.
