Tortoises are bad at version control

In the beginning was TortoiseCVS, a cunning hack that overlaid CVS over Windows Explorer. To start with it offered context menu items for checkout, update and checkin, and, perhaps most usefully, indicated with overlaid icons whether a directory contained any modified files, and whether a file was modified, up to date, or (by its absence) not under version control.

Then TortoiseCVS became more complex, and Tortoises started to proliferate for other VCSs, and everything went horribly wrong. Tortoise is now Evil and Bad, because it is still superficially seductive, but, especially in the hands of the inexperienced users whose path it is supposed to smooth, it is confusing and dangerous.

The problems only arise because it gets complex: the worst part is that the original TortoiseCVS was a good, if limited, system. The problems arise from first, trying to do more than Windows Explorer seems to allow technically (or possibly, bugs), and secondly, overloading the user interface.

The problem in the first class is that the overlaid icons aren’t always up-to-date. The only reliable workaround is to ignore them, but they’re compelling and, most of the time, correct.

Problems in the second class arise mostly because first, Windows Explorer can’t represent time, and secondly, it does double duty for both the file view and the repository view. As there’s no way to represent time/revisions, history and log functions, and many others, are relegated to long context menus, and hence the fact that it’s in Explorer is really no better than a custom interface. Worse confusion results from the confusion of the file system and repository, as many operations, such as copying and renaming files, have to be performed by different methods, and Explorer operations such as copying and moving can have unintended consequences, as in VCSs which store metadata in every directory (CVS and SVN) they move metadata around, which is normally not what is desired.

The problem is largely fixable, at the cost of complicating the interface by having two types of Explorer window. I don’t know if Windows supports the sort of virtual directory one would need to display, but it seems to have various other sorts, so it shouldn’t be impossible. The default view should be the repository view, which should have a different colour scheme from normal Explorer windows to distinguish it, and should be able to move between revisions; it should also be possible to open a standard file view for low-level operations.

Reuben Thomas, 12th June 2008

Last updated 2008/06/12