I am using ArcMap for the first time. My superior at the work place has asked me to do some research about the life cycle of an .mxd file.

Is there anything called a life cycle of an mxd file, like the life cycle of servlets?


5 Answers 5


Check out X-Ray, a nice set of tools for looking at structures (and differences) of MXDs and geodatabases. See links below. The tools were developed by the ESRI Local Government Data model group for working with the large municipal basemap datasets and mxds they work with but have been released for general use, and looks like is very useful add-in when working with large mxd's with lots of layers, complex labeling, lots of aliases, different scale dependent layer visibility, etc...

X-Ray for ArcMap (ArcGIS 10.2) (short overview video link included) http://www.arcgis.com/home/item.html?id=f0ae73e90c1a4992a1059e7d370966d4

X-Ray for ArcCatalog (ArcGIS 10.2) (short overview video link included) http://www.arcgis.com/home/item.html?id=9ea218ff575f4a5195e01a2cae03a0ae


While Subversion is most frequently used for version management/control of code, it is possible to use for documents and other types of files. There is an example of someone using it with Word documents.

Subversion is mature, and a lot of support is available for it on the 'net. I would recommend it if you're serious about tracking and reverting changes in MXDs, especially if you have multiple people working on the same MXD or set of MXDs.

  • 1
    It should be noted that SVN is rapidly going the way of the dodo. git reigns supreme nowadays. Also note that no typical source control system is going to be able to handle merge conflicts on a binary format like MXD.
    – jpmc26
    Nov 2, 2015 at 18:59

I guess he means how the mxd file develops in time, preferably also keeping track of what you changed, and how you did it, with the options of going back to an earlier version. You could try and use a version control system like mercurial to keep track of the mxd file, but this can be troublesome.

Maybe switching to a scripting language like R or python (especially python seems to work well with ArcGIS as it is the standard scripting language nowads is not an option, but this supports all this things. You can version control the R script which does the processing, and visualization. You track the .R file in a repository, commiting changes as you go. Each commit is accompanied by a message of why you did this commit. You can also get older versions of the script out of the repository, enabling you to create the output of older version.


Versioning of MXDs is currently possible in third party software. One which I know works is more of a CAD package called Projectwise. However, it apparently doesn't support 10.1 yet (this is second hand kmowledge so don't quote me on that).


I manage a particularly large mxd (dozens of groups and layers) in a multi-user environment that necessitates changes fairly frequently. We used to track changes in a simple .txt file, stored in the same directory but this was inefficient. Instead, I now have created a table in a geodatabase with fields to track version changes. The mxd simply references the table and thus stores versioning info within the map doc itself, where it is easily accessible and editable, even for users without access to the containing folder. It's not a fancy setup by any means but works well for us.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.