Single User Source Control
Many people have asked us for a single-user SourceGear Vault license at a
very-low-cost. We've always thought this was a good idea, but we never got
around to implementing it until today. The Single User Edition of
Vault is now
available at a cost of $49.
It's amazing the speed at which things move in 2003. This afternoon we
made the necessary entries in our online store, so the product was available for
purchase at that time, even though our company website had not been
appropriately updated yet. Within about an hour, somebody noticed the new
item in our store's catalog and posted a note
to the Vault mailing list. Marc LaFleur caught that note and proceeded to
write a blog
entry. Long story short, about 8 hours after its availability, I'm
finally blogging about the Single User Edition now, and it's already old
Julia Lerman suggested that I
might write a brief explanation of why anyone would want to use source control
alone anyway. She raises a good point -- source control is usually
explained as a way of keeping developers from stepping on each others'
toes. Why would anyone want to use source control on a team of
The first answer is simply to admit that for a solo developer, source control
actually isn't all that compelling. If it were, we could charge a
heckuva lot more than 49 bucks for it.
For any team of two or more people, I can credibly argue the benefits of
a good source control tool. And as the team gets even
larger, source control evolves from "beneficial" to "compelling" to
"necessary" and finally to "you are a complete bozo if you don't use it".
But with just one lonely coder (we almost called this product the
"Lonely Coder Edition"), the benefits of source control are a bit less
important. Nonetheless, lots of people do use a source control tool when
working alone. I'm sure this is partially because it's tough to get out of
the habit once you've made source control a part of your normal workflow.
But when I use a source control tool all by myself, here are the benefits that I
find still apply:
It's an undo mechanism. Whenever I get to a good
stopping point in my code, I checkin my changes to the repository. From
that point on, I can be less careful. I can try coding some crazy new
idea and when it doesn't work, I just revert my working folder to my last
It's a historical archive. Sometimes I want to Undo
much further back. My repository history contains a full copy of every
version I have ever checked in. If I ever need to go back and find
something I once had, it's there.
It's a reference point for diff. A source control
tool can easily show a diff of all the changes I've made since my last
It's a backup. When I regularly checkin my work, I
always know that there are two copies of it. If my *&^%#@! laptop
hard drive dies
again, my code is still safe in the repository.
It's a journal of my progress. When I do my regular
checkins, I write a comment explaining what I was doing. These comments
serve as a log or a journal, explaining the motivation behind every
change I have ever made.
It's a server. Sometimes I'm coding on different
computers. The repository becomes my central server. I can go
anywhere I want and I can still get to my code.
Some will observe that all of these benefits are available through other
means. That's true. Like I said, source control for a single user
isn't truly compelling for most people. Speaking just for myself, I use
source control because I like it, and I thought folks might be
interested in hearing why.