RCS addiction

This week has proven to me how addictive it is to use a revision control system. Of course I learned this by trying to go cold turkey (at work).

The project at work was explicitly not being kept in revision control, for reasons I won't go into, and there were two of us working on it. And it involved changing lots of files and copying them around to different places to run them on different systems and stuff like that. At first we were working on different parts, but as we converged on the same problem areas and began trading off on working on some parts things just got messy and stressful.

Do I have the most recent version of that file? How could I update this other file on the web server? Should I send a diff with my changes so you can integrate them in with yours? By email or scp? Could you take a look at this change here on my laptop, sorry the screen's so small and hard to read. Didn't the version of this we had before lunch work better than this new one? On and on..

After finishing that and moving on to a different thing that is in revision control, I was struck by how all this chatter across the office went away and things just worked and we had a common foundation and a shared history to work from (even though I had to go back and read the history, being the newbie). The kind of foundation that can make communicating about the actual issues very quick and very obscure to anyone who lacks that context.

So you switched to pax last September because you needed to munge the symlinks that way?

Even more, revision control added a background communications channel that hadn't been there. So make a change only you expect to care about and maybe an hour later your co-worker says, out of nowhere "nice fix to the dist script". Or alternatively, you see another quiet commit tagged "fixed dist script breakage". Of course that's the way things normally go in all the projects I work on; indeed some of them like the Debian testing security team even manage to do almost all our communication over that back-channel.

Aj was blogging earlier about code comments and how the revision history of a line of code in an is increasingly more useful than whatever outdated comment happens to be above it. Not only can you see who put that line in, and how it used to read, but what they were thinking at the time. AOL to that.

Incidentially, this week I committed the 1000th change to tasksel, and the 30 thousandth change to the Debian installer. And both were just as good for me as my first hit of CVS, thankyou.