A while ago I opened a bug asking to make it easier to use bzr-mirror.gnome.org with JHBuild. I proposed a patch which still needed some love, but wasn’t really sure how to finish it. It added a flag so you can say, “if there is a mirror of this for {bzr,git} users, use it”. Recently, thanks to zeenix pestering, I finished it. Of course he quickly identified some issues, which led to changes to the JHBuild code for svn, git and bzr. Among other things, SVN finally got tag support, and has a more consistent decision making path. And JHBuild-controlled-Git can handle branches a lot nicer now.
We really need to start cleaning the modulesets – one of the biggest problems we had is that the properties are getting misused. “../branches/foobar” is not a module, its part of a path! This is the route to pain, misery and suffering! As I find time I hope to clean this up, but for now the JHBuild mirror seems to be working.
To start using it, just set mirror_policy to “bzr” or “git” in your .jhbuildrc. You probably want a clean slate for this – it won’t doing anything clever in terms of taking over existing SVN checkouts. Another option is
module_mirror_policy = {
"conduit": "bzr",
"foobar": "git,
}
I hope to get JHBuild to automate git-svn a little here too (and automatically git-svn init) where appropriate.
Can you confirm that Banshee is incorrectly configured because of the line:
-
+
The ‘-’ line makes jhbuild try to checkout /git/banshee/trunk/banshee instead of /git/banshee.
@diegoe: Don’t follow your comment (- and + lines?). But yes, Banshee is incorrectly configured.
Thats exactly the kind of workaround I wanted to avoid putting in jhbuild, because the mirrors will try to checkout from an insane location >: (
There isn’t a pretty way to fix it, apart from perhaps persuading the banshee devs to be more “normal”. I think the best fix is it to use the trunk-template feature of the repository. Or borrow the layout detection code from bzr-svn.