|This topic describes functionality of the SCC API Providers plugin, which is obsolete and is left for backward compatibility only. To learn about supported source control integrations, see Integration With Source Control Systems.|
TestComplete includes source code control integration services that let you put your files to and get them from a source code control system, compare file versions, view properties and perform other actions directly from the TestComplete IDE. You can perform these actions with project item files as well as with project and project suite files. The main difference between TestComplete support and the usual work with the source control client application is that you do not open the database and thus you do not have to explore the database structure and search for your project and its files within the data storage.
TestComplete support is implemented using special built-in engines that are enabled when you use any of the --
Items of the Source Control submenu of the Project Explorer’s context menu.
-- or --
Items of the File | Source Control menu of TestComplete.
-- or --
Items of the Source Control toolbar (if it is hidden, you can show it by right-clicking the main menu and selecting Source Control from the ensuing context menu).
These menus and the toolbar hold the same items. Note that the context menu of some nodes in the Project Explorer tree do not include the Source Control submenu. This means the node is not stored in a file, so it cannot be added to a source control system as an individual instance. Such nodes are typically added as part of the parent node.
This section describes a typical sequence of actions against a project that you can perform via the TestComplete Source Control menu.
Bind your project suite (or a single project) to the desired source control system. For this purpose, use the Add Project Suite (or Add Project) item of the Source Control menu or toolbar. (Learn more.)
Update the local version of the project. For this purpose, use the Get Latest Version item of the Source Control menu or toolbar. (Learn more.)
Check out the desired files. For this purpose, use the Check Out item of the Source Control menu or toolbar. (Learn more.)
Add new elements (script units, project items, and so on) to a project. (Learn more.)
Check in the files that have been changed. For this purpose, use the Check In item of the Source Control menu or toolbar. (Learn more.)
Open test projects and project suites that are stored in source control directly from the TestComplete user interface. See Opening Projects From Source Control (Legacy).
Merge different versions of one file. (Learn more.)
Compare different versions of one file. For this purpose, use the Compare Versions item of the Source Control menu or toolbar. The actual actions performed by this menu item depend on the source control system you use as well as on the nature of the files. If you work with the Subversion system using the SmartBear SVN provides, this command will invoke the Comparison Options Dialog dialog that helps you select files to be compared.
Unbind the project suite (or project) from the source control system. For this purpose, use the Unbind From Source Control item of the Source Control menu or toolbar. (Learn more.)
Change the source control system. For this purpose, unbind the desired project suite (or project) from the currently used source control system. After that, you can bind it to another source control system. (Learn more.)
As it was mentioned, you can either bind the entire project suite or a single project to a source control system. However, we recommend that you add the project suite to a source control system as it helps avoid problems with opening the added project suite on other machines in your network. The same holds true for opening projects and project suites from source control. We recommend that you open the entire project suite rather than its individual projects from the source control system.
The fact is that the location of the project suite against the location of its projects is important for TestComplete. So, when you bind a single project to a control system and another tester opens this project on his or her machine, the project suite’s location might differ from the location that was on the initial machine. In this case, the testers of your team will have to bind a project to a source control system every time the project is opened.
When you open projects and project suites from a source control system, you can specify a folder on your hard drive to which the project or project suite files will be placed. If you open an individual project from source control and place it to a folder on your hard drive that does not contain the appropriate project suite file, the project’s files will be treated as if they were not added to the source control system.
When you add a project or project suite to a source code control, TestComplete also adds all the files that belong to this project (project suite), that is, TestComplete also adds files of project items and their child elements. The structure of files and folders in a source code control system corresponds to the structure of files and folders on your hard disk: project files will be stored in subfolders of the project suite folder, project items files will be stored in subfolder of the project folder, etc. For a full list of project suite, project and project item files that are kept in source code control, see List of Files Added to Source Code Control.
When you open a project that was created in an earlier version, TestComplete 14 suggests that you convert it to the format adopted in the current version. Once a legacy TestComplete project is added to a source control system, remember to check out all the project files before the conversion. Otherwise, the project files remain read-only and cannot be converted. See Migrating Projects Created in Earlier Versions to TestComplete 14 for details.
When you delete an item from a project bound to a source control system, TestComplete asks you whether you want to delete the corresponding file from the database. If you agree and the source control system supports this operation, TestComplete removes the specified file automatically.
TestComplete traces the check-in/check-out status of a project suite and enables or disables the Check In and Check Out methods according to this status. For instance, TestComplete disables the Check In item after the project suite was checked in and enables it after the project suite was checked out. The Check Out item is disabled when Check In is enabled and vice versa. However, the TestComplete check-in/check-out status of a project suite may not coincide with the status of the project suite in the source control system. This happens if you checked out your project suite from the source control system using TestComplete and then checked it in outside of TestComplete using some other tool, for example, using a client application of the source control system. To bring the TestComplete status of the project suite to the source control system’s status, select the Refresh Status menu (or toolbar) item.
TestComplete script files can have ANSI, multibyte or Unicode format. Some source control systems may not support Unicode files or process them in a specific way. For information about working with Unicode files stored in your source control system, please refer to its documentation. Also, you can resolve the problem by changing the character encoding format that is used for script units in your project. For more information on this, see Units Encoding.
Storing a large number of Test Visualizer images in a source control system is not recommended as this can degrade 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.