Subversion (SVN) is a free software version control system by CollabNet. You can use Subversion to store and manage your TestComplete test projects and project suites.
You can integrate TestComplete with Subversion and work with Subversion repositories directly from TestComplete. You can add your project suite with all its projects and their child items to Subversion repositories, commit changes you make to them to the repositories and update them with the latest revisions the repositories store.
Earlier versions of TestComplete used the SmartBear SVN provider to enable integration with Subversion. That provider uses Microsoft Source Code Control API to work with Subversion and implements only the mediocre level of integration.
This provider is deprecated. Starting from TestComplete version 14.71, integration implemented by using this provider is removed from the product completely.
If you have test projects created in earlier versions of TestComplete and use that provider to bind to Subversion, we recommend that you migrate them to the new Subversion Plugin. For instructions on how to do that, see Migrating From Legacy SCC API Providers.
Before you add your project suite to the Subversion repository, prepare your computer and TestComplete for integration. See Requirements and Prerequisites.
If you used Subversion integration in TestComplete versions prior to version 11 and have test projects bound to Subversion via deprecated SmartBear SVN provider, we recommend that you migrate them to the new Subversion Plugin. See Migrating From Legacy SCC API Providers.
To work with Subversion, you can use the following elements in TestComplete IDE:
Commands in the Source Control submenu of the Project Explorer context menu.
Commands in the File > Source Control menu.
Commands on the Source Control toolbar.
Using the toolbar is, perhaps, the most convenient way to work with Subversion repositories. By default, the toolbar is hidden. To make it visible, right-click the main menu area and select Source Control from the subsequent context menu. See also Customizing Toolbars and Menus.
These menus and the toolbar hold the same commands:
|Get Project Suite from Subversion||Creates a working copy of a project suite stored in a Subversion repository and opens that project suite in TestComplete.|
|Add Project Suite to Subversion||Adds the current project suite with all its projects and their child items to a Subversion repository.|
|Show Changes||Shows a list of changes made to your working copy (available only if you use TortoiseSVN to work with Subversion from TestComplete).|
|Commit||Sends changes you have made to your working copy to your Subversion repository.|
|Update||Updates your working directory with the changes from your Subversion repository.|
|Revert Changes||Undoes local changes made to your working copy.|
|Resolve||Opens a dialog where you can resolve conflicts in your project suite if there is a conflict between your local changes and the changes you got from the repository (available only if you use TortoiseSVN).|
|Show Log||Shows a list of changes committed to your Subversion repository.|
|Repository Browser||Opens the Repository Browser dialog where you can examine the structure of your Subversion repository. If you use TortoiseSVN, you can also perform various advanced tasks on the repository in the dialog.|
|Refresh Status||Updates the status of a project suite, projects, and their child items in your working copy.|
If your project suite is bound to Subversion, TestComplete traces the status of project suite items in the Subversion repository and shows the appropriate icons in the Project Explorer:
|Note:||When you add new items to your project or edit existing items, TestComplete updates the project items status only when you save the changes you have made. This happens because TestComplete tracks the status of corresponding files, and the file status in the repository updates only when you save the changes. Until the changes are unsaved, the file status is unchanged.
That is why, for example, when you add a new keyword test or script unit to your project, the test or unit is marked as new, but the parent KeywordTests and Script items are not marked as modified until you save the changes.
TestComplete implements a number of dialogs and commands that simplify your work with Subversion. For example:
You can enhance your interaction with Subversion by enabling integration between TestComplete and TortoiseSVN - a GUI client for Windows. In this case, TestComplete will use TortoiseSVN dialogs to perform some of source control operations. This gives you even more abilities to work with Subversion.
Integration with the TortoiseSVN client is the preferred way to work with Subversion from TestComplete IDE. To learn more about TestComplete integration with TortoiseSVN and the way to configure the integration, see Working With TortoiseSVN Client.
The topics below describe how you can perform the most common tasks over projects and project suites bound to a Subversion repository directly from TestComplete.
TestComplete does not support non-Latin characters in names of branches, tags, commit messages and other text labels. Working with branches, tags and commit messages that contain non-Latin characters may cause errors. As a workaround, we recommend that you enable integration with the TortoiseSVN client. The dialogs of TortoiseSVN have full support for non-Latin characters.
TestComplete script files can have the ANSI, multibyte (UTF-8) or Unicode (UTF-16) format. The native Subversion client does not support Unicode files and treats them as binary files. This may hamper the comparison and merging of script files in the Unicode format. To resolve the problem, you can do either of the following:
Storing a large number of Test Visualizer images in a source control system is not recommended as this can reduce performance of the check in and check out operations on the test project. To avoid performance issues, remove unnecessary Visualizer images from your source control-bound test project. You can also disable the Bind Visualizer frames to SCC option to command TestComplete not to add (and check in) Visualizer files to the source control. For details, see the Visualizer Data and Source Control Systems section of the Sharing Visualizer Frames topic.