Moving projects from one server to another

Ability to export and import projects is a quite popular request in our tracker. We worked hard to bring this feature in 9.0, and this EAP build is the first one where you can finally try this functionality.

The import is possible from "Import Projects" page in Administration area. In order to start importing projects you need:

Import projects feature is able to import project settings, builds and changes history and user accounts. Since imported project can also use settings from parent projects, TeamCity will also import all vcs roots, templates, meta runners and other project related settings for parent projects. Existing objects will not be overwritten though.

For now there are still some important limitations:

Moving artifacts and logs

Despite the fact that TeamCity can't import artifacts and logs right from the backup file, still there is a way to copy/move them from old to new server. Each import process creates projectsImport-<date> directory under TeamCity logs and as a final step of the import, .bat and .sh scripts for copying artifacts will be generated and placed under this directory. These scripts accept old and new data directory via command line.

Security notes

Favorite Builds

Starting from this EAP, to easily access builds you want to monitor, you can mark them as favorite. Any manually triggered build will be marked as favorite automatically. The marked builds will be listed on the "My Favorite Builds" page. In addition, notification rules can be configured for such builds.

Managing custom charts from the TeamCity Web UI

Before this build, you could manage your custom charts by manually modifying the <TeamCity Data Directory>/config/projects/<ProjectID>/pluginData/plugin-settings.xml file. Now you can create a new chart:

Modifying custom charts now can also be easily done from the TeamCity Web UI.
More details on this feature are available in our documentation.

Create build configuration from Meta-Runner

Currently to change a Meta-Runner you have to edit xml file. This is a error-prone process. Not to mention that if a Meta-Runner is already used, changing it without the ability to test it first may fail a lot of builds. To make this process easier, we introduced an ability to create a build configuration from a Meta-Runner. Once the build configuration is created, you can change its steps, adjust parameters and requirements, check how it works, and then extract into a Meta-Runner with the same ID.

Settings in Version Control

The Change log tab listing all changes in the VCS root where project settings are stored has been added to "Versioned Settings" page.
!screenshot!

In addition, you can now disable showing settings changes in builds.

Perforce

New options were introduced for Perforce VCS roots:

7-zip support for published artifacts

TeamCity can now compress published artifacts to a 7-zip archive:
**/* => dist.7z

As with other supported compression algorithms you can also specify artifact dependency for files inside a 7-zip archive:
dist.7z!folder/**

Browsing inside 7-zip archives is also supported. But for now we do not support browsing inside 7-zip placed into another 7-zip archive.

Set parameters to dependent builds

If you worked with TeamCity snapshot dependencies, you probably know about dep. parameters. So if the build configuration with ID A has a snapshot dependency on the build configuration with ID B, build in A can reference B parameter using the syntax:
dep.B.<parameter name>

But sometimes when you start a chain, you want to push a parameter to some or all chain nodes from the top build. It is now possible in this EAP build. With the example above, if you want to start a chain B -> A and push the parameter param to B, you can add a parameter with the name dep.B.param to A, either in a custom build dialog or via build configuration parameters. If you want to push parameters to all dependencies, you can use dep.* in the parameter name: dep.*.param.

Other Improvements