I have had a number of questions on how version control works with AX. I will use this article to post some of the more frequent questions and I’ll add to it as I can. Here goes:
Can different developers share the same AOS and application aod files?
We get this question all of the time and the answer is a resounding no. This is not a tested or supported configuration. Every developer should get their own AOS, application aod files and their own database. The developers can share the same SQL server instance but they should have their own AX database on that server. Each developer’s box connects to the main repository – this is the only thing the development machines should have in common. In this way each developer can work without interference from changes the other developers are in the process of making. The only time a developer encounters changes from another developer is when they sychronize to the main repository. At that time whatever changes have been checked in by the other developers will be brought down to a given developer’s machine.
How do I compare different checked in versions of an AOT element?
-To compare your current version of the AOT element to a previously checked in version, right-click the element in the AOT and choose Compare. In the compare window there are two dropdowns that let you select what you want to compare. You can compare your current version of that element and in the second dropdown choose from the list of previously checked in versions of the element.
-To compare two previously checked in versions of the element, right-click the element in the AOT and choose Compare. In the compare window there are two dropdowns that let you select what you want to compare. You can compare two previously checked in versions of that element. Alternatively you can right-click the element in the AOT and choose History. In the history form select in the grid the versions of the AOT element you want to compare and click the Compare button.
How do I synchronize to a previously checked in version of the AOT element that is the same as the current version?
Right-click the element in the AOT and choose History. In the history form select in the grid the version of the element you want to rollback to and click the Get button. This will pull into your AOT that version of the element.
What does the force checkbox do under Tools > Development tools > Version control > Synchronize?
The synchronization process compares the version of the xpo in the local repository to the latest version of that xpo in the main repository. It does not look at the contents of the xpo (or the structure of the AOT object). It is just looking at the version of the xpo in VSS. If you had an AOT element that you modified without checking it out and the version of the xpo in VSS hasn’t changed (meaning updates were not checked in since the local repository was last updated), without the force checkbox marked, that AOT element does not get updated from the main repository. This is because the local repository contains the same version of the xpo the main repository has, even though the AOT element does not reflect the latest version of that object. The force checkbox overwrites all AOT elements in the AX environment that are not currently checked out. With the force checkbox marked, the synchronize process does not verify the versions of the xpos in VSS, it just pulls down the latest one from the main repository.
When you right-click on a single element in the AOT and choose Get Latest, this does not force the AOT element to be updated. It is NOT the equivalent of marking the force checkbox in the synchronization form. The Get Latest will compare the version of the xpo for that element in VSS to the version in the main repository. If they don’t match Get Latest will get the latest xpo and then import it into the AOT.
Can I use TFS 2010 with Dynamics AX 2009?
At this point in time, this is NOT a supported configuration. We have seen blog posts describing how this can be set up to work, but there are issues when running TFS 2010 as the version control system. The supported version of TFS is 2008 at this time. For latest updates on compatibility with different products, check on this site:
http://blogs.technet.com/b/dynamicsaxse/archive/tags/compatibility/
When I use MorphX VCS as a version control system, I lose my changes when I restore/refresh my database with the production database.
MorphX VCS stores the version control information in the Dynamics AX database. When you restore/refresh your database, you are overwriting your version control information. The version control information is stored in the SysVersionControlMorphXItemTable, SysVersionControlMorphXLockTable, and SysVersionControlMorphXRevisionTable tables. It may be possible to restore these tables from a prior backup of the old database, and then fix the SystemSequences table for any RecID conflicts, but this has not been tested, and is not a supported solution to retaining your version control information. We do not have a recommended process for saving the MorphX VCS data in this instance.