Version Control System

Dynamics Ax 4.0 includes standard integration with a source-code control system.

Introduction
The version control system integration allows a higher level of control of the development environment. All changes are stored in a central database where the history of each element can be inspected, and old versions rolled back if required. By default, most version control systems allow multiple developers working on a single object at any given time. In Dynamics AX in combination with Visual SourceSafe 2005 only the Lock-Modify-Unlock pattern is supported. Althoug Visual SourceSafe 2005 allows Copy-Modify-Merge. In essence, programming in Dynamics Ax with a version control system requires each developer to have his or her own development environment, with local AOS and repository. The version control integration in Dynamics Ax includes all AOT elements as well as the label files. In addition, the system will ensure that unique Ids are used for all elements, despite the development taking place in multiple environments. This is achieved using a Dynamics Team Server.

SCC software package
An external package to provide the SCC capabilities is required.

Currently, there are two possibilities which are supported by Dynamics Ax 4.0
 * Source Depot - This is an internal Microsoft product and not publically available
 * Microsoft Visual SourceSafe 2005

Dynamics Team Server
An instance of Microsoft Team Server is required. There are two options for the team server installation
 * One Team Server instance for each Dynamics Ax application - this will provide unique Ids within a single application
 * One Team Server per company/development team - this is easier to administer and provides unique Ids even between multiple applications.

Danger The number of IDs are finite on every layer ! VAR allows IDs from 30000 to 40000. If you use only one Dynamics Team Server you may run out of IDs soon.

Development process
Working with Version Control is easy. First thing you do, is to put an AOT object under version control. To do so use the "Create" Option in the Context Menu on the object. Next perform the first Check In and give some description. To modify an object use the Context Menu again and Check it out. By default the object is locked, and cannot be check out by anyone else. So remeber to check it in again !

One benefit from Version Control is to restore an older version. This can be done by using the context menu on an AOT Item. You can view the history of an object and who has edited the object. You can compare differen object versions; And of course you can restor a particular version.

Be aware of side effects ! If you restore an older version, there may be other elements in your application that need the newer version. Use the cross references to find dependencies.