switch_root...

Rob Landley rob at landley.net
Wed Jun 17 21:37:33 UTC 2009


On Wednesday 17 June 2009 02:48:57 Peter Korsgaard wrote:
> >>>>> "Rob" == Rob Landley <rob at landley.net> writes:
>
> Hi,
>
>  Rob> I forget why that moved from stat() to lstat().  I vaguely
>  Rob> recall there was a reason (although I thought it had moved the
>  Rob> _other_ way?), but git's user interface is so utterly horrible
>  Rob> that digging through the current source control archive to find
>  Rob> the commits that changed it is beyond what I'm willing to do as
>  Rob> a volunteer.  (I'm all in favor of distributed source control,
>  Rob> but git's UI is actually worse than subversion's, and for some
>  Rob> reason using "hg convert" on the busybox git archive gives me a
>  Rob> totally corrupted mercurial archive.)
>
> What's hard about git blame (and what makes it different than svn
> blame?)

It uses much longer commit identifiers which scroll the text off the right side 
of the screen, yet don't clearly tell you what changes were made before or 
after others.  Adding a date and pushing the text of the file off the right edge 
of the screen doesn't actually help matters.

Mercurial has repository local sequential revision numbers, so it pretty much 
works like subversion when doing something like annotate.

For comparison, here's a chunk of an "hg annotate filename":

  1: 
 88: #undef NEWTOY
 88: #undef OLDTOY
 88: #define NEWTOY(name, opts, flags) {#name, name##_main, opts, flags},
 88: #define OLDTOY(name, oldname, opts, flags) {#name, oldname##_main, opts, 
flags},
 88: 
  1: struct toy_list toy_list[] = {
234: #include "generated/newtoys.h"
  1: };
  1: 

Notice how you can see at a glance what hunks were last touched by which 
commit.  The grouping is obvious.

And here's a chunk of git blame on busybox's AUTHORS file:

61677fef (Erik Andersen            2000-04-13 01:18:56 -0000   1) List of the 
au
2129b146 (Erik Andersen            1999-12-16 23:26:57 -0000   2) 
61677fef (Erik Andersen            2000-04-13 01:18:56 -0000   3) If you have 
co
61677fef (Erik Andersen            2000-04-13 01:18:56 -0000   4) listed, or 
the
78333d04 (Mike Frysinger           2005-04-21 23:17:57 -0000   5) incorrect, 
_pl
2129b146 (Erik Andersen            1999-12-16 23:26:57 -0000   6) 
2129b146 (Erik Andersen            1999-12-16 23:26:57 -0000   7)  -Erik
2129b146 (Erik Andersen            1999-12-16 23:26:57 -0000   8) 
2129b146 (Erik Andersen            1999-12-16 23:26:57 -0000   9) -----------

Note how you have to look left to rigth all the way across the window to see 
which files go with which grouping, because there's 60 characters of padding in 
between.  And if I want to see what happened before or after other things, I 
have to parse a 12 character date string, with 7 separate fields, in reverse 
order from how clocks display them.

The user interface of git is utterly horrible, always has been, and if 
anything has gotten worse over the years rather than improving.  I suppose I 
could layer the gui tools on top of it, but I'd much rather get the mercurial 
conversion working.

*shrug*  Denys likes git, that's fine.  I just need to make puppy eyes at the 
mercurial developers so they can debug the archive conversion so I have 
something _I_ can use.  (Although when even git can't give me the full history 
of coreutils/readline.c I'm not sure it's entirely the mercurial archive 
converter's fault.)

Rob
-- 
Latency is more important than throughput. It's that simple. - Linus Torvalds


More information about the busybox mailing list