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