Version control with Subversion: so easy my wife can do it


Yes folks, it’s true.  I have converted my wife to be a loyal Subversion user.  My wife is not technical, not by a long shot.  But the power of Subversion and the simplicity of TortoiseSVN made the convincing very easy.

Ed. note: that’s not my wife in the above screen.  Please don’t get me in any more trouble than I already am.  Thanks.

It wasn’t even that hard to convince her, either.  She doesn’t do any development, but she has lots of files that need versioning.  For example, this was her versioning system before Subversion:

  

She would create many copies of a document, noting the date and sometimes a little comment describing the changes.  I noticed that she would even do complex branching, creating new forks of documents where a sweeping change needed to be introduced, but not necessarily affect the “master” copy just yet.

The setup

I mentioned earlier my wife isn’t technical, but she’s not a complete beginner around her laptop either.  She is comfortable:

  • Organizing documents in her “My Documents” folder
  • Creating, renaming and deleting files and folders
  • Not spilling Starbucks onto her laptop
  • Right-clicking to bring up the context menu

To use Subversion, all you really need is the ability to organize and right-click.  If your significant other or tech-challenged friend don’t know what a context menu is, you might have to start at square zero.

I turned my wife onto source control by addressing some pretty common complaints:

  • Those she wrote these documents for changed their mind frequently, leading to a lot of wasted work and backtracking
  • She would forget to create a new copy occasionally, and closing Word means she lost her “undo” history and therefore her starting point
  • Managing the copies of documents is tedious and time-consuming, resulting in only creating new baseline documents or copies pretty rarely

It took my wife some time to perfect her copy-rename strategy, as before then she would work off of one copy only to be thoroughly defeated when she needed to undo changes and she had closed Word.

The pitch

I’ve used source control for far more than just source code files.  I’ve never been a fan of SharePoint, which in my experience is rarely used for more than a glorified file share.  It can version documents, but the web interface for doing so is v-e-e-e-r-y clunky and primitive.  It takes far too many clicks to edit a document, and even then you’re in a interface that wasn’t meant for file and folder browsing (the web).

Source control is perfect for situations where you want to save multiple revisions of a document and be able to restore older versions at any time.  I showed my wife one of our trunks from work, where we keep all project documents including source code in a single repository.

I explained to her the concepts of a centralized change repository, and the idea of saving your document twice (once to save, once to commit the changes).

But the easiest pitch was to just show it in action.  A simple demonstration showing real-world scenarios sealed the deal.

Sealing the deal

With my wife, I set up a local Subversion repository and trunk.  To eliminate the “magic”, I walked through these steps with her:

  • Installing Subversion
  • Installing TortoiseSVN
  • Creating a local repository using TortoiseSVN
  • Checking out the new repository using TortoiseSVN

For consistency’s sake, I checked out the new repository to a folder in her “My Documents”, calling it “Versioned Files”.  A descriptive name helped her remember why this folder was special and had all of those new icons.  With the icons TortoiseSVN provides, my wife could easily see if she had changes she needed to commit to the repository.

Next, we walked through a couple of scenarios she runs into frequently:

  • Making changes and setting a new “baseline” document
  • Reverting changes to a previous version

In the first scenario, we walked through:

  • Creating documents and folders
  • Committing the new documents and folders to the repository using TortoiseSVN
  • Entering descriptive comments

And in the second scenario, we walked through:

  • Viewing the log, and seeing the changes and comments
  • Reverting a change

To make it easy to commit changes, I created a shortcut on her Desktop to the “Versioned Files” folder.  TortoiseSVN’s context menu works with shortcuts, so she is able to commit and revert straight from her desktop.

Finally, I let her drive some real-world scenarios to make sure she understood all of the concepts and details.  She’s very happy with the results, and it has greatly simplified her document management.  Any file that she wants to keep a history of, she drops it into her folder and commits the file to the repository.

Zero-friction toolset

With any tool I use, in development or otherwise, the less friction it adds to my life, the more valuable it is to me.  Any client I talk to, I’ll always recommend Subversion over any source control provider, simply because it introduces the least amount of friction of any source control provider I’ve used.  I don’t have to open another application, open a web browser or open an IDE.  It’s all right there in Explorer, in a simple and intuitive interface.

And if the client still won’t believe me, it’s hard to argue against a source control provider so easy my wife can do it.  Unless they believe a complicated interface implies a more powerful tool, there’s always this list of companies who are Subversion users.

Next project: get my dad to use Subversion for his Fortran programs…

Profiling a legacy app