Mike is currently…

hanging out in Calgary

Pragmatic Version Control Using Subversion

[ subversion book ]

obligatory book plug

[ syndicate ]

rss 2.0 feed for boy meets world

[ contact ]

drop me a line

[ about ]

this is mike mason's weblog

[ eskimoman.net ]

original web pages



Google

Wed, 06 Aug 2003

This is an archived blog post. I've switched to using WordPress as my blogging software and have not migrated all my old posts. I believe strongly in not letting an old link die, so this page continues to work. Please do visit mikemason.ca/blog to read newer posts.

Things I Need from Source Control

This is a rant. You’ll have heard it before.

I need revision control for my source code in order to make my life easier, store my code more safely, and allow me to collaborate with others. Management need source control to give them a useful and tangible artifact from the development process, and to help them feel happy the developers aren’t going to have their laptops (and the company source code!) stolen and lost.

My source control system needs the following features:

Speed

I want to use source control whenever the computer can tell me something I’ve forgotten, or when it can answer a question quicker than me (which should be all the time). Questions like “what exactly did I change since last night?”, or “which bozo wrote this code?” should take a couple of mouse clicks and achieve sub-second response times. Getting my code up to date with everyone else’s changes should also be fast – the only noticeable delay might be to do with the network or my hard disk.

Automatic operation

Anything the computer can do without my intervention it should do. If I made changes to the same file somebody else changed, and the computer can merge the changes, I don’t want to be asked about it. If someone else deleted a file, I certainly don’t want that file any more, and it should be deleted from my machine too. Source control should make sure my version of the files are as similar to everyone else’s as possible. When a situation arises that the computer can’t deal with, I should be able to easily figure things out and keep moving.

Atomic commit

When a developer makes changes, those changes should be visible only to the person making them. Once they’re ready to let everyone else see them, they do a “commit” or “check in” and submit their changes. This submission should be atomic in the database sense – either the whole change succeeds or none of it does. By “change” I also mean file addition, deletion and move.

And the winner is…

I don’t think this is an unreasonable list of features, but so far I’ve only found two source control systems that actually provide them. First off is the excellent Perforce which I grew to love at my last job, and Subversion, an open-source replacement for CVS (which would make it onto my list, except for the lack of atomic commits). So why is it so hard for people to make good source control systems? And why do companies insist on encouraging these people by buying them?!? Perforce is half the price of the software we’re using on a project right now, ten-times as fast, and we’d lose a lot less time with people accidentally deleting other people’s files…

Posted 20:22, 06 Aug 2003.  

This is an archived blog post. I've switched to using WordPress as my blogging software and have not migrated all my old posts. I believe strongly in not letting an old link die, so this page continues to work. Please do visit mikemason.ca/blog to read newer posts.

Why I Love My Job, Part 17

Today I found out that my Ward Number is a quite-respectable 3. And on Thursday morning Martin Fowler popped into the office, the coffee machine in our building was broken, and thus we had an excuse to wander over to a different building and take a half-hour coffee break (well, me and half-a-dozen others!). I returned to my desk feeling refreshed and very positive about life at ThoughtWorks – I guess that’s why they pay him the big bucks!

Posted 19:49, 06 Aug 2003.  

August
Mon Tue Wed Thu Fri Sat Sun
       
6

[ tim bacon ]

musings of an xp coach

[ ian bourke ]

enhancing core competencies since 1976

[ martin fowler ]

a cross between a blog and a wiki

[ alan francis ]

agile != good

[ paul hammant ]

part of the problem…

[ darren hobbs ]

the blog formerly known as pushing the envelope

[ mike roberts ]

on life and technology

[ chris stevenson ]

skizz-biz

[ joe walnes ]

joe's new jelly

[ rob baillie ]

oracle

Powered by Blosxom

Registered plugins: SmartyPants, antispam, bloglinks (v0.2), calendar (v0+6i), pluginfo (v1.0), and userstatus (v0.1)
This work is licensed under a Creative Commons License.