Subversion's GUI

by Eric M. Burke

Brian talked about Subversion at the OCI monthly Java lunch. (I know, it's not technically a Java topic, but we digress some months). It was a good presentation, although 1 hour is not enough time.


The truth is, I've tinkered with Subversion here and there and fully intend to start using it. I currently use CVS at home and StarTeam at work. None of these is an ideal solution, but I believe Subversion will win people over in the long run. I've also used Visual SourceSafe at a previous job, as well as ClearCase a long time ago.


I only really heard of two Subversion limitations:


  1. The GUIs are not mature - CVS offers good GUIs and tight integration with IDEs. The Subversion IDE integrations are crude in comparison

  2. Subversion offers no exclusive locking scheme, which is essential in some environments. Don't get me wrong, I prefer the concurrent editing mode of CVS and Subversion. However, many organizations store lots of big binary files in version control - like Word docs. Merging those kinds of files is either impossible or a pain, at best. Plus, some companies just won't let you use a tool that does not support exclusive locking. Argue the merits of this if you will, the fact is that some companies just work that way. I heard that exclusive locking will be included in a future release, so it will not be a problem for long.





Subversion has a rock solid version control infrastructure under the covers. Here are some features that many other version control tools - surprisingly - don't have:


  • The ability to version directories.

  • The ability to re-add files after you delete them, preserving the old history. StarTeam, for example, cannot do this.

  • An efficient branching and merging model.

  • Every operation is versioned - things like moves, copies, deletes, etc...

  • You can attach arbitrary attributes to any file, which is great for linking files to defects, for example.





Things like first-class GUIs and IDE integrations will be available for Subversion. It will take some time to catch up to CVS, but Subversion will catch up.