Mercurial mirror, FYI.

Rob Landley rob at landley.net
Thu Mar 15 16:19:16 UTC 2007


On Tuesday 13 March 2007 6:23 am, Joakim Tjernlund wrote:
> On Tue, 2007-03-13 at 10:09 +0000, Luciano Miguel Ferreira Rocha wrote:
> > On Tue, Mar 13, 2007 at 10:51:25AM +0100, Joakim Tjernlund wrote:
> > > On Tue, 2007-03-13 at 09:34 +0000, Luciano Miguel Ferreira Rocha wrote:
> > > > On Tue, Mar 13, 2007 at 08:46:53AM +0100, Joakim Tjernlund wrote:
> > > > > With git you can, both ways. Look at git-svn
> > > > 
> > > > I think the point was that he wont allow it. :)
> > > 
> > > oh, last I looked at mercurial I didn't find a way to do that. Care to
> > > tell me how?
> > 
> > Sorry, I didn't mean that the feature is available (though I think
> > it's doable by creating custom commit hooks). Only that allowing commits
> > to the hg repository (by third or second parties) instead of directly to
> > the subversion repository would only confuse things and wasn't a feature
> > Rob desired.
> > 
> > But I'm not authoritative, so what do I know?
> > 
> OK
> 
> I use git for u-boot and kernel dev here for 2 resons
> 1) u-boot and kernel uses git as their native SCM

And ALSA, e2fsprogs, Xen, and even Open Slowaris use hg.  A year ago the dvb 
developers (who work in hg) were using a seamless git-hg bridge for Linus to 
pull from.  I know because they hit a bug that was apparently a workflow 
issue rather than tools, I never did follow up to see what was going on:

http://groups.google.com/group/linux.kernel/browse_thread/thread/f88004c360a41ce6/7e7dae0e831d3a88?lnk=st&q=&rnum=3#7e7dae0e831d3a88

Writing an hg-git converter's fairly straightforward because they're both 
fully distributed source control systems that store all the same types of 
data, it's just a question of translating the formats.

> 2) git has a builtin bridge(git-svn) that lets you do track an
> SVN repo, both ways(you can commit you own additions as well as merge
> new stuff from the SVN repo into your git repo.

I never bothered to look it up for the same reason I wrote a shell script 
(http://busybox.net/~landley/svn2hg.sh) to convert svn to mercurial before 
bothering to learn to configure tailor.  These problems are relatively easy 
for me to solve off the top of my head.  (Hint: svn doesn't understand 
branched history so you have to flatten it: the easy way is create a new 
temporary distributed SCM branch, pull, merge, export a patch, and discard 
the temporary branch.  And if you try to be bidirectional you have to markup 
your squashed commits so you don't run into the problem Linus had above.  
This is not specific to git or mercurial but to bidirectional bridging 
between a distributed and a nondistributed source control system general.)

I chose Mercurial because it's 1/10 the code of git, has a much better on-disk 
format that humans can understand, never needs to be "packed", and is way 
faster (remember how git brought kernel.org to its' knees in January 
http://lwn.net/Articles/216948/), doesn't require installing multiple 
layers of packages on top of each other (git, cogito, qgit, git-web) just to 
get a usable interface, etc.

I made the hg copy for my own use (for reasons I explained in 
http://landley.net/notes-2007.html#07-03-2007 ) and put the result up because 
others might find it useful.  I did it in hg because that's what I use.  If 
you want to host a git version, you do it.

Rob
-- 
Vista: Windows Millenium Second Edition



More information about the uClibc mailing list