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…

Related Articles:

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

About Jimmy Bogard

I'm a technical architect with Headspring in Austin, TX. I focus on DDD, distributed systems, and any other acronym-centric design/architecture/methodology. I created AutoMapper and am a co-author of the ASP.NET MVC in Action books.
This entry was posted in Tools. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • AC

    That’s your wife?? ;-)

  • http://joeydotnet.com/blog Joey Beninghove

    LOL nice, be careful. I got hassled in the comments for my “Ruby, so easy a wife can do it…” post. Ironically, my wife actually thought it was funny. Oh well…

    http://joeydotnet.com/blog/archive/2007/09/15/ruby-so-easy-a-wife-can-do-it.aspx

  • http://www.terrbear.org terry

    i’ve been thinking about doing something similar for @stinkle. tortoise is a pretty sweet gui svn client, though. the mac gui clients suck pretty bad, so i think i’d have to write some sort of script to automagically keep up with a folder. blarg.

  • http://www.worldofwarlow.com/blog John

    I can’t even get my wife’s head around “backup”, she doesn’t get it means “make a copy of in case you main copy gets lost” :-@

    I don’t think I’ll try getting her head around version control!

  • Sean

    ‘course, you could always simply Track Changes in Word. No additional installs, inline revision tracking, familiar interface.

    Point appreciated about using SVN tho :)

  • http://jimmybogard.lostechies.com Jimmy Bogard

    @Sean

    Well, I wanted to use something that’s intuitive and actually works well. Track Changes breaks down after a couple of revisions. My wife is looking at the 100s level. It doesn’t track by a single instance of a change either, she wants to look at history.

    It also doesn’t work across documents, where she’s making changes in two documents but in one logical change.

    PS as you might have guessed, I haven’t had any good experience with “track changes”. :)

  • Sobin

    Great Article man…..

  • Matt

    Good article, but I was under the impression that subversion couldn’t handle the diff and merge of binary Word docs. In essence, is your wife relying solely on the descriptive comments to recall changes?

  • http://jimmybogard.lostechies.com Jimmy Bogard

    @Matt

    I haven’t used a SCC provider that could handle binary diff and merge. She hasn’t needed to use a diff tool to look at the difference. Viewing each one in Word + descriptive comments has been enough. Any merge tool would blow the WAF (wife acceptance factor).

  • Tom

    MS Word also provides a cool feature of diffing and merging documents. In conjunction with SVN it proves pretty useful.

    1. Save the two versions of the file you want to diff – ex one.doc and two.doc
    2. Open One.doc and Click on Tools > Compare and Merge Documents…
    3. Select Two.doc

    Voila – you now have a merged document as if someone tracked changes while editing one.doc to update it to the contents of two.doc

    I know this post is a year later – but hope it helps if your wife needs it anytime ;-)

  • http://www.lostechies.com/members/bogardj/default.aspx bogardj

    @Tom

    Thanks! Never too late!

  • http://www.facebook.com/profile.php?id=1685732974 George Powell

    Jimmy, have you looked at what is new on the market place and seen how simple has even got to install and manage?  uberSVN, http://www.ubersvn.com, worth taking a look and adding to this blog if you really want to show how easy Subversion is to use now.  Also we have our own client list at WANdisco which again shows why its so easy to believe that Subversion itself has a 60% market share in the SCM space. http://www.wandisco.com/customers

  • Jayden Lawson

    Any recommendations for an SVN Mac client?