Robert Collins | 1 Jun 08:32 2006
Picon

[PLUGIN][RFC] read only support for mercurial repositories

I thought a good way to prepare for the meeting we're having in London
would be to do something with the hg codebase, something that would
require me to look at a reasonable spread of it, come to detailed grips
with the design etc... 

So I taught bzr how to commit to an hg tree, and how to pull from an hg
branch.

The plugin for this is at
http://people.ubuntu.com/~robertc/baz2.0/plugins/hg/trunk.

You'll need my non-dotbzr-control-dir patch for bzr.dev for this to
work. (see my prior email, or merge in
http://people.ubuntu.com/~robertc/baz2.0/non-bzr-control-dirs).

I wouldn't call this complete by any stretch, but it should happy suck
all the data out of an hg repository. (It does not yet support branch
from an hg url, you need to do 'bzr init && bzr pull URL')

I've built this against hg 0.9, which isn't in dapper - if you download
their tarball from
http://www.selenic.com/mercurial/release/mercurial-0.9.tar.gz and unpack
it, then do an inplace build : 'python setup.py build_ext -i' you can
use it without installing by adding the dir to your PYTHONPATH.

I.e. I run bzr with this as "PYTHONPATH=../mercurial-0.9
~/source/baz/hg-repo/bzr"

Currently it does not support http transports to pull from. I expect
this is just a 'small matter of code' - the hard part, converting the
data model on the fly - is done for manifests -> inventories, and file
revisions -> inventory entry.revision fields.

Enjoy!

Cheers,
Rob
--

-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.

Gmane