Tuesday 11 November 2008

Distributed version control

Forgive me if this post gets extremely geeky. There's just no avoiding it in this case.

Since starting to research distributed version control systems recently, I've been able to think of little else, computer-wise. Regular version control involves using a server to make backups of previous versions of files, usually program source files, and resolving conflicting edits between team members. Distributed version control systems do this without the central server. They seem to be the solution to two problems that I'd forgotten I had.

One thing I do as a programmer is set up occasional personal projects. They're small projects generally, but they still need source control and I want to carry the code with me between home and work. That makes it hard to have a central server, so version control that doesn't need a server would work perfectly.

The other problem is managing my personal files - plain text, mostly - that might change at work or at home. Usually I'm at work, so if I come across a funny quote, I just make a note of it and my flash drive gets an updated copy when I turn off the computer and go home. If I'm at home, I have to sync my flash drive with the hard drive, make a note, sync again, then remember to sync at work in the morning. It's a hassle I'd rather do without. With distributed version control, I can just make the note and merge easily later.

I haven't done too much to test out any software for this, except for Bazaar, so that's probably what I'll end up using. That's assuming I manage to go ahead with it.

Mokalus of Borg

PS - Wikipedia on distributed version control.
PPS - I hope it makes sense to someone.

6 comments:

Erin Marie said...

I think I understood the gist of it.

It's one of those posts though, that makes me go 'so THIS is what John does - he UNDERSTANDS software'.

One of those things that I will never truly understand, but appreciate.

John said...

At least it wasn't complete gibberish, then. That's good.

And I'm glad to be here to understand software for all the muggles of the world.

Erin Marie said...

You're not magic.

John said...

Hehe. Actually the Wikipedia article on the word "muggle" notes that its use has been broadened to approximately the point where it is a synonym for "layman" or a non-expert in any given field, within context.

Jakub Narebski said...

I think it was rather nice blog post. It explains why you might want server-less solution when there are two more or less equivalent machines.

By the way, you might want to look, beside Bazaar also at Mercurial and Git.

John said...

I did consider Mercurial and Git, though I didn't try them out specifically. I read about them and skimmed over their documentation, and decided on Bazaar because of its Windows support, for the most part.