Automatic Merge
The feature is available since TeamCity 8.1. The Automatic Merge build feature tracks builds in branches matched by a given filter and merges them into a specified destination branch if the build satisfies a certain merge condition. It is supported for Git and Mercurial VCS roots for build configurations with enabled Working with Feature Branches.
Automatic Merge Settings
Check Adding Build Features for notes on how to add a build feature. All branches that are used in this feature must be present in a repository and included into the Branch Specification.
Option | Description |
---|---|
Watch builds in branches | A Configuring VCS Triggers for Working with Feature Branches of the branches whose build's sources will be merged. Specify newline-delimited of rules in the form of |
Merge into branch | A Working with Feature Branches of the destination branch the sources will be merged to. Parameter references are supported here. |
Merge commit message | A message for a merge commit. The default is set to |
Perform merge if | A condition defining when the merge will be performed (either for successful builds only, or if build from the branch does not add new problems to destination branch). |
Merge policy | Select to create a merge commit or do a fast-forward merge. |
Cascading Merge
It is possible to define a cascade of merge operations by adding several such features to a build configuration.
For example, you want to automatically merge all feature branches into an integration
branch, and then configure another merge from the integration
to the default branch.
Create the
integration
branch on your VCS repository.Add the Automatic Merge build feature to your configuration.
In the Watch builds in branches filter, specify
+:feature-*
In the Merge into branch, specify your
integration
. This will merge your feature branches to the integration branch.
Add one more Automatic Merge build feature to your configuration.
In the Watch builds in branches filter, specify
+:integration
In the Merge into branch, leave your
default
branch.
See the related TeamCity blog post.