Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Version control is an indispensible tool for software development, allowing one to reliably and cleanly step back in time to the last time X did it's job exactly right, or to see what changed between then and now -- typically used when trying to figure out why X is no longer working exactly right.

However all the tools I know about for this work only on plain text files. Toolboxes, and thus their models, are binary. Does anyone have a workable method to bring versioning to them?

UPDATE: Versioning in this context is different from backup. There are any number of simple methods to create snapshots of files for a particular date/time -- windows backup, xcopy /s d:\foobar\ x:\foobar_%date%, zip stuff_%date%.zip stuff\*, ....

Applying a tool such as git, fossil, mercurial, subversion, or ... to a binary file is one step better than using xcopy or zip in so much as one can add a commit message, "Model foobar %date% now overwrites previous results only if Baz doesn't exist", but is still anemic compared to what that same toolset can do applied to text files: e.g. show me exactly what was changed between last year and today.

WinMerge screenshot

share|improve this question
1  
Are you on 9.3 or 10? If I have some spare cycles I might be able to throw together a utility that dumps out model information to a text file for sane comparison. –  Jason Scheirer Nov 22 '10 at 21:36
    
Both. My primary workstation remains 9.3 while we try and sort out performance issues with 10. –  matt wilkie Nov 23 '10 at 17:58
1  
If (and it's a big IF with ArcGIS) you're using PostGIS, PostGIS versioning has been released - kappasys.ch/cms/index.php?id=23&L=5 (credit to slashgeo.org for the link) –  om_henners Dec 1 '10 at 3:32

3 Answers 3

Currently I have the workflow of ArcCatalog: opening toolbox > selecting model > editing > file > export > to python, switch to SCM tool > refresh changes > commit changes (enter log comment).

It's cumbersome so I don't do it so much, and thereby lose many of the benefits of versioning.

share|improve this answer

Every mainstream version control software, be it central central version control like SVN or distributed solutions like Git, Mercurial, Bazaar etc. allow storage of binary files. They are all quite effective both performance-wise and also in terms of occupied space.

Inspecting differences between revisions/versions of a file is of course different story. There is not much you can do when you want to compare ArcGIS models, which indeed are binary. I do not know of any diff tools for models, I doubt there will be any as most people do not need this specific functionality.

share|improve this answer
    
But you would still be able to roll back and/or retrieve previous versions, right? –  Chad Cooper Nov 22 '10 at 21:13
1  
Well yes, but I think the question is more along the lines of seeing the actual differences between models, if I understand it correctly. –  Petr Krebs Nov 22 '10 at 21:20
    
That's right. I'm already putting the binary .tbx file in VC (using mercurial) but that's not very much different from just retrieving the same file from regular backup. –  matt wilkie Nov 23 '10 at 18:01

Why not use git? http://stackoverflow.com/questions/540535/managing-large-binary-files-with-git

share|improve this answer
1  
This still doesn't provide anything over just storing a list of timestamped versions of the toolbox file -- you lack the ability to see the actual internal changes to the model. –  Jason Scheirer Nov 22 '10 at 21:15
    
I don't think you are going to be able to see actual diffs on binaries, are you? Here's another one for GIT: stackoverflow.com/questions/104453/version-control-for-binaries –  Chad Cooper Nov 22 '10 at 21:46
    
Git can be configured to hand binary files to an external program that will produce a text diff, though. –  Tobu Nov 22 '10 at 22:51
2  
@Tobu: So can be SVN and just about every other VCS, but is there a diff tool for models? –  Petr Krebs Nov 23 '10 at 7:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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