Europython Sprints 12 Jul, 2007
I attempted to sprint for a bit with the b-zed-r (they’ve got me saying it, and it actually
rolls off the tongue better) folks, but it was cut short first by my
sightseeing, then by the Lunch That Would Not End. I learned that it’s okay for Hawaiian
pizza to come with peaches (!?) here. I’m trying to take a look at the internals of
Bazaar and see if it will suffice for the way I want to be able to use a DVCS, so I’m
developing a couple of plugins first. Didn’t get anywhere on that, but did learn how
http pulls work (it’s quite neat). When you do a bzr pull http://example.com/path
,
it first does a post request for /path/.bzr/smartserver
to see if it can talk
to its own streaming server which saves a lot of time. Lacking that, it’ll check for
read-only access to some other files under .bzr
there which contain the
branch information it could use to pull. So basically any request that has .bzr
in it, you know is the client. Also I’m told (but haven’t verified) that it will walk up
toward the root if it doesn’t find a .bzr
at the url you’ve given. All this
would make it easy to set up rewrite rules in a Trac server to actually let browser urls
be something you could use in the client! Woohoo. Future post in the works.
The plugin I’m really interested in writing is a smart blame that can not reassign ownership of lines when they’re only modified for whitespace or other such minor things. That’s one thing I hate about all VCSes right now, it’s not possible to say “I’m just fixing the indention, this is minor” so whenever you do that you get ownership of the entire file! This will be interesting due to the dual-parentage that bzr revisions can have.