Visualize History

How it all went down.

What is version control?

(This post is the first in a mini-series titled “Should I make my code open source?”)

For me, the biggest reason to open up Visualize History is certainly version control.  Don’t get scared if you don’t know what that is, because you really do.

Imagine that you are a senior in college writing your senior thesis.  You’ve collected your research and you write your first draft, which you turn in right before Thanksgiving break.  Over break, you manage to forget about the draft completely, and, when you return to school, your advisor says I’d like you take it in a new direction.  So you delete pages 4 through 19 and rewrite them completely.  You save the file, and have deleted the old version.  Then you hand it back in, and the professor says “oh, wow, the old paper was so much better”.  You panic.  But if you are using source control, all you need to do is check for old versions.  You can browse the changes, combine the new and old versions, and copy and paste from both files as if there were different.

Some of you may be thinking well luckily I’m not a dumb college kid who throws away his senior thesis anymore.  I would have saved a copy.  So, my second example comes from the law firm of someone I know quite well, who for this post we’ll call Alan.  Alan tells me that at his firm, they write and rewrite drafts, sometimes making 30 or 40 versions of one file.  “Don’t worry”, he tells me, “we have a system.  When I change a file, I add a number to the end of it.  Today I just finished ‘brief about something boring.v23.doc’.”  Version control has an answer for these people too.  Not only does it automatically add the version numbers for you (”Wait is this draft version 23 or did Dave finish 23 and I’m on 24?”), but it understands who you are.  That means if your assistant is correcting your spelling while you are adding an appendix on things your client can’t get caught doing, the version control system can merge those changes, automatically.  It can highlight lines that have changes, and it remembers every change ever made, and who made it.  Not only that, you can control who is allowed to see or to change a file, and you can undo all changes made by one person.  So when Bill quits out of frustration over the ridiculous naming system, but before doing so, inserts random words in every brief he has access to, you can laugh at crazy Bill and fix his spiteful nature in about 8 clicks.

There isn’t a software company that I know of that doesn’t use version control, which we often call source control in the business.  But there is no reason to limit it to code.  I have, for example, several Word documents and PDFs on my site in the documentation section.  I would not be surprised if Microsoft’s next versions of Office included very obvious source control manipulations.  And you should all use it.

For Visualize History, I use the open-source industry standard, which is called Subversion.  There is an extension for Windows called Tortoise SVN which I like a lot.  I think Tortoise SVN does a great job of making an otherwise overly-technical idea into part of the average user’s normal experience.  The tool, though, is not the important part to me.  I think the idea that I may want to look at an old version of my documents, and that someone else has made that easy and free is a pretty cool idea.

No comments

No comments yet. Be the first.

Leave a reply