January, 5, 2005 archives
ducks in a row
while i wait for my super-cool new development machine, i’ve been using one of our spare servers in uppsala, sweden. surprisingly, network lag hasn’t been an issue at all.
one of the routines i’ve been working out is how to use bitkeeper effectively to maintain trees for each of the bugs i’m working on. bitkeeper’s “branching” is quite a bit different from cvs. a branch is just a clone of another repository. so i have a pristine version of each mysql version in directories like mysql-4.1-clean
, and a little shell function (which is just a wrapper around bk clone -l
) that allows me to quickly create a new tree named something like mysql-4.1-7451
. then i do what i need to do in that tree and create a changeset for the fix. when it is approved, i pull the changes from that tree (and other trees with approved bug fixes) into the -clean
tree, push that to the main repository, and get rid of the bug-fixing trees.
this means that each bug fix is independent, and i can push any of them up the tree at any time. (bitkeeper doesn’t let you selectively push changesets from one repository to another.) i have seven bug-fix trees in my working directory right now with patches waiting to get approved.
only three bugs fixed today. i fixed another bug, but when running the fix by the man (because he happened to be around, and the fix just seemed way too easy to be true), he pointed out that it was already fixed in the 5.0 tree. in the same way. oops!
the los angeles times has a a review of cafe pinot, which is in downtown los angeles, next door to the central library. (i’ve never eaten there, but it sounds good.)
humans rule, dolphins can suck it
anti-dolphin.org (not really at that domain) is one of those goofy things on those internets that you’ve heard so much about.
as wide as a river and harder to cross
apple made just the announcement i was hoping they would, and have dropped the price of cinema displays. still pondering selling my imac and getting a 20" cinema display to hook up to my laptop and new desktop machine.
one of the reasons i want a cinema display is for the extra horizontal working space. extra vertical space doesn’t do much for me, but being able to position a couple of terminal windows side by side, or better yet, a couple of terminal windows next to a web browser or my mail client (which is really just mutt in a big terminal window), is great. i’m still playing around with different setups for having different windows for coding and testing. maybe i’ll have more to say about that when i find a setup i like.
my coworker stewart wrote about how he organizes his working bitkeeper trees, and did some analysis of how much diskspace each clone takes up. what he hasn’t stumbled upon is how you can change bitkeeper to default to always checking out read-only copies of the files instead of read-write copies (which is how the mysql trees are configured by default). in BitKeeper/etc/config
, you can add a line like [jimw:]checkout:get
to default to read-only files. if you look in the mysql-4.1 tree, you’ll see that serg (the lucky guy who has gotten to approve most of my bug fixes), arjen, and nick (a former coworker) have configured their default to read-only. another advantage to using get by default (instead of edit) is that bk citool
is considerably faster, since it doesn’t have to check all those writable files to see if they’ve been modified.
i only fixed one bug today, but i pushed a whole bunch of my approved bug fixes into the tree.
i also spent a little time polishing the mysql bugs database a little. now that i have to use it every day, i have a more active interest in making it better. (and for all of its flaws, i still like it quite a bit. the interface is nice and lean in comparison to so many other bug databases that i’ve seen or worked with.)