Mon, 12 Nov 2007

Rusty vs. git vs. mercurial

I ran with git for long enough to distinguish my mercurialisms from real usability problems, but it just isn't what I want.

The problem is that I really have gotten used to hacking with a queue of patches a-la quilt, and I get frustrated hacking without it. My lguest development tree was an experiment using mercurial queues, which is a quilt tree with revision control, and I'd hoped to do better with git (I tried using guilt). But it's just not a win.

Git is great for feeding patches to Linus (well, actually they're kind of a pain to prepare, but Linus takes them more reliably). But I'm not prepared to spend the time to write and maintain YA quilt-on-git system.

So I'll be maintaining a patch queue (in mercurial), except this time for all my kernel projects (including misc hacks). From that I'll create a for-linus git tree for him to pull. This time I've got scripts to export the mercurial tree, but also the tarball of patches and the unpacked series and patch files.

It currently all lives in my ozlabs.org home dir. I just need to figure out some triage system to mark some as "for linus", some as "for mm" and the rest as "only the brave".

I wonder if there's a proper way of extracting a tag from a revision (rather than "based on Linus' 6e800af233e0bdf108efb7bd23c11ea6fa34cdeb" it'd be nice to say "based on Linus' v2.6.24" or equiv). Using "grep .git/refs/tags/" seems wrong...


[/tech] permanent link