All of lore.kernel.org
 help / color / mirror / Atom feed
* git-rev-list: proper lazy reachability
@ 2005-05-31  1:58 Linus Torvalds
  2005-05-31  7:58 ` Jon Seymour
  2005-05-31 12:15 ` Paul Mackerras
  0 siblings, 2 replies; 18+ messages in thread
From: Linus Torvalds @ 2005-05-31  1:58 UTC (permalink / raw)
  To: Git Mailing List


Ok, I just made git-rev-list DTRT when you pass it a "beginning" and 
"end", ie it does proper reachability analysis _without_ parsing the whole 
set of commits. 

It's probably buggy, so don't get too excited, but it seems to give the 
right results for something like

	git-rev-list v2.6.12-rc5 v2.6.12-rc4

which is basically "give me a rev-list of everything that is in rc5 but is 
not in rc4".

So now "git-rev-list a b" should be equivalent to "git-rev-tree a ^b", 
except it's faster, and it doesn't print out anything else.

Because it doesn't need to go all the way back to the root (only far 
enough back to be able to determine that there can be no more unreachable 
entries), it should be constant-time in the total history size. Doesn't 
matter if you've got a million revisions, if you asked for the difference 
between two "close" ones, it will be fast.

Somebody should probably take a look at my simplistic algorithm, since it 
can probably be improved upon and/or fixed for corner-cases.

		Linus

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-05-31  1:58 git-rev-list: proper lazy reachability Linus Torvalds
@ 2005-05-31  7:58 ` Jon Seymour
  2005-05-31 14:35   ` Linus Torvalds
  2005-05-31 15:13   ` Linus Torvalds
  2005-05-31 12:15 ` Paul Mackerras
  1 sibling, 2 replies; 18+ messages in thread
From: Jon Seymour @ 2005-05-31  7:58 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Git Mailing List

On 5/31/05, Linus Torvalds <torvalds@osdl.org> wrote:
> 
> Somebody should probably take a look at my simplistic algorithm, since it
> can probably be improved upon and/or fixed for corner-cases.

Seems reasonable, though I think that in a graph like this:

    A 
  /  |  \ 
B  C  D
|  /   /
E
| \ 
F G

and searching for git-rev-list A ^B

it would actually be better to stop at E (printing A,B,C,D,E), rather
than B because the contemporaneously parallel edits C and D and the
common base E are relevant to evaluating B since they got merged with
B into A from the common starting point E.

In the lingo of my epoch theory, this is searching to the next nearest
epoch boundary past B.

My merge-order patch to rev-list which incorporates epoch theory is
still on its way - it turned out that incrementally finding epoch
boundaries was not quite as simple as I thought it would be. I expect
I'll have a respectable looking patch available this weekend. The
patch I have now works quite well for smaller graphs but fails on
larger graphs because it relies on rational numbers with large
numerators and denominators and these end up overflowing even 64 bit
integers. I think I know how to fix it, but it will take me a few more
days yet.

jon.

-- 
homepage: http://www.zeta.org.au/~jon/
blog: http://orwelliantremors.blogspot.com/

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-05-31  1:58 git-rev-list: proper lazy reachability Linus Torvalds
  2005-05-31  7:58 ` Jon Seymour
@ 2005-05-31 12:15 ` Paul Mackerras
  2005-05-31 14:39   ` Linus Torvalds
  1 sibling, 1 reply; 18+ messages in thread
From: Paul Mackerras @ 2005-05-31 12:15 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Git Mailing List

Linus Torvalds writes:

> Ok, I just made git-rev-list DTRT when you pass it a "beginning" and 
> "end", ie it does proper reachability analysis _without_ parsing the whole 
> set of commits. 

I have made gitk use git-rev-list instead of git-rev-tree, but it
still absorbs the whole of git-rev-list's output before drawing
anything.  I'd like to make it draw the commit graph and list
incrementally as it gets the output from git-rev-list, but to do that
I need to know whether git-rev-list could ever print a commit ID
*after* one of its parents.  If it never does that then I can
restructure the code to do the drawing incrementally fairly easily.

Paul.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-05-31  7:58 ` Jon Seymour
@ 2005-05-31 14:35   ` Linus Torvalds
  2005-05-31 15:13   ` Linus Torvalds
  1 sibling, 0 replies; 18+ messages in thread
From: Linus Torvalds @ 2005-05-31 14:35 UTC (permalink / raw)
  To: jon; +Cc: Git Mailing List



On Tue, 31 May 2005, Jon Seymour wrote:
>
> On 5/31/05, Linus Torvalds <torvalds@osdl.org> wrote:
> > 
> > Somebody should probably take a look at my simplistic algorithm, since it
> > can probably be improved upon and/or fixed for corner-cases.
> 
> Seems reasonable, though I think that in a graph like this:
> 
>      A 
>   /  |  \ 
> B    C   D
> |  /   /
> E
> | \ 
> F G
> 
> and searching for git-rev-list A ^B it would actually be better to stop
> at E (printing A,B,C,D,E), rather than B because the contemporaneously
> parallel edits C and D and the common base E are relevant to evaluating
> B since they got merged with B into A from the common starting point E.

You're talking about something else - you worry about showing a graph, for 
example.

What git-rev-list A B does is literally for something like a "changelog" -
what commits were added in A that weren't in B, and the list is A, C and
D. Or, more commonly, used for something like

	git-rev-list HEAD v2.6.12-rc5 | git-diff-tree --stdin -v -p drivers/usb

which basically says "what changed since 2.6.12-rc5 in the drivers/usb 
tree"?

So in that situation, you really do _not_ want to see B and E, even if
you'd need those two to make all the connections. Because you've seen B
and E already (they were in v2.6.12-rc5), and if you're looking for a bug
that didn't happen in that release, you really only want to see the new
stuff.

		Linus

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-05-31 12:15 ` Paul Mackerras
@ 2005-05-31 14:39   ` Linus Torvalds
  2005-05-31 15:23     ` Linus Torvalds
  0 siblings, 1 reply; 18+ messages in thread
From: Linus Torvalds @ 2005-05-31 14:39 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: Git Mailing List



On Tue, 31 May 2005, Paul Mackerras wrote:
> 
> I have made gitk use git-rev-list instead of git-rev-tree, but it
> still absorbs the whole of git-rev-list's output before drawing
> anything.  I'd like to make it draw the commit graph and list
> incrementally as it gets the output from git-rev-list, but to do that
> I need to know whether git-rev-list could ever print a commit ID
> *after* one of its parents.  If it never does that then I can
> restructure the code to do the drawing incrementally fairly easily.

You should never see a parent before a child from git-rev-list. I may have 
screwed something up when I move things between the two lists (the 
before/after thing needs to first do the reachability thing on one list, 
and then moves them to the "potential output list"), but I don't think so.

Anyway, at that point it would be a git-rev-list bug, so if you can make
your code notice and complain ("git-rev-list listed parent before child")  
rather than silently show crud, that would help debugging it if it ever 
happened.

		Linus

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-05-31  7:58 ` Jon Seymour
  2005-05-31 14:35   ` Linus Torvalds
@ 2005-05-31 15:13   ` Linus Torvalds
  2005-06-01  0:14     ` Jon Seymour
  1 sibling, 1 reply; 18+ messages in thread
From: Linus Torvalds @ 2005-05-31 15:13 UTC (permalink / raw)
  To: jon; +Cc: Git Mailing List



On Tue, 31 May 2005, Jon Seymour wrote:
> 
>      A 
>   /  |  \ 
> B    C   D
> |  /   /
> E
> | \ 
> F G
> 
> and searching for git-rev-list A ^B it would actually be better to stop
> at E (printing A,B,C,D,E)

Btw, you probably looked at the actual code, so you know this, but maybe 
it wasn't clear to everybody else: the code obviously _will_ look at all 
of ABCDE before it can even decide that it should print out ACD, since it 
really needs to.

What happens is that it walks the tree "time-first" (not depth-first or 
breadth-first, but "most-recent-first"), which tends to approximate what 
we want, and when it sees "B" it will mark all of its children as 
uninteresting since they were clearly seen. So it will actually have 
gotten all the way to E before it can tell that it has seen enough.

The thing that makes git-rev-list preferred over git-rev-tree is that it 
can avoid looking at F and G and older parents, since it's clear by E that 
walking the tree any further would be pointless, and all the commits we 
could look at are already marked uninteresting.

But if somebody wanted to actually show this as a _graph_, what you would 
probably want is actually all of ABCDE, except you'd get the "interesting" 
bit separately (ie ACD would be tagged some way). Then you could show a 
sane graph that is colored by whether something is new or not, for 
example. That's absolutely trivial to do wiyth the new rev-list algorithm, 
in case somebody really cares - it's literally just changing the printout 
to show the entries marked "ignored" with some extra marking.

(Well, slightly more too: you'd have to add the uninteresting commits to
the list, and mark the end object itself as being ignored, but that's two
more trivial lines. Right now the code knows that it won't even add some 
objects to the output list, so..).

		Linus

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-05-31 14:39   ` Linus Torvalds
@ 2005-05-31 15:23     ` Linus Torvalds
  2005-06-01 16:38       ` Matthias Urlichs
  2005-06-04 15:01       ` Junio C Hamano
  0 siblings, 2 replies; 18+ messages in thread
From: Linus Torvalds @ 2005-05-31 15:23 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: Git Mailing List



On Tue, 31 May 2005, Linus Torvalds wrote:
> 
> You should never see a parent before a child from git-rev-list.

Actually, I take that back.

A commit that has several children will see _a_ child before the parent is
shown, but while the time-based ordering means that it _likely_ will order
all children before the parent, now that I think about it, that's not
guaranteed to be true. You could have

	      A
	     / \
	    B   |
	     \ /
	      C
	      |
	      D

and if C has a date that is before B, then git-rev-list would traverse the
tree (and show it) in the order A C B.

In fact, even D might be listed before B is (eg, the person who committed
B had a clock that was set to the last century, and so the date on that
was wrong).

The thing is, since B has such an "old" date, the traversal assumes that
it is old and very low down in the tree, and that it's better off parsing
other commits first, so it will never look more closely at B and notice
that it has a parent that has already been parsed.

So I guess you'll have to wait for the end and do the toposort after all. 
Sorry about the confusion on my part.

		Linus

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-05-31 15:13   ` Linus Torvalds
@ 2005-06-01  0:14     ` Jon Seymour
  0 siblings, 0 replies; 18+ messages in thread
From: Jon Seymour @ 2005-06-01  0:14 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Git Mailing List

On 6/1/05, Linus Torvalds <torvalds@osdl.org> wrote:
> 
> 
> On Tue, 31 May 2005, Jon Seymour wrote:
> >
> >      A
> >   /  |  \
> > B    C   D
> > |  /   /
> > E
> > | \
> > F G
> >
> > and searching for git-rev-list A ^B it would actually be better to stop
> > at E (printing A,B,C,D,E)
> 
> Btw, you probably looked at the actual code, so you know this, but maybe
> it wasn't clear to everybody else: the code obviously _will_ look at all
> of ABCDE before it can even decide that it should print out ACD, since it
> really needs to.

I did look at the code and concluded that ACD would be displayed and
simply assumed B would also be displayed. Anyway, you are right, for
the purposes you are interested in neither B nor E are interesting.

> 
> But if somebody wanted to actually show this as a _graph_, what you would
> probably want is actually all of ABCDE, except you'd get the "interesting"
> bit separately (ie ACD would be tagged some way). Then you could show a
> sane graph that is colored by whether something is new or not, for
> example. That's absolutely trivial to do wiyth the new rev-list algorithm,
> in case somebody really cares - it's literally just changing the printout
> to show the entries marked "ignored" with some extra marking.

This will also fall pretty naturally out of the --merge-order patch
that I am working on with an appropiate tweak. But I'll shut up about
that until I have code to share...

jon.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-05-31 15:23     ` Linus Torvalds
@ 2005-06-01 16:38       ` Matthias Urlichs
  2005-06-04 15:01       ` Junio C Hamano
  1 sibling, 0 replies; 18+ messages in thread
From: Matthias Urlichs @ 2005-06-01 16:38 UTC (permalink / raw)
  To: git

Hi, Linus Torvalds wrote:

> So I guess you'll have to wait for the end and do the toposort after all.

We could add a cache file, listing commit nodes which predate one of
their parents. Hit one of those and you know you need to immediately
examine their parents instead of waiting for them to come up in date order.

There shouldn't be too many of those in any tree.

-- 
Matthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de
Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de
 - -
Truth is a statue, and you are all just a bunch of pigeons.



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
@ 2005-06-01 18:44 Marco Costalba
  0 siblings, 0 replies; 18+ messages in thread
From: Marco Costalba @ 2005-06-01 18:44 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Git Mailing List

Linus Torvalds wrote:
> 
> On Tue, 31 May 2005, Linus Torvalds wrote:
> 
>>You should never see a parent before a child from git-rev-list.
> 
> 
> Actually, I take that back.
> 
...

> 
> The thing is, since B has such an "old" date, the traversal assumes that
> it is old and very low down in the tree, and that it's better off parsing
> other commits first, so it will never look more closely at B and notice
> that it has a parent that has already been parsed.
> 

If this is an exception, and I it is, peraphs can be treated in a special way.

As example, when adding a new parent to the pending list of parents to be processed in time-based
ordering, should be easy to inc a counter if  the last one is always the same, e.g. there is the
same very old node around, and check closer to it if the counter reach some allowed maximum.

I know it's a hack, and is not a solution in the general case, but also the last century developer
clock is very rare, more, it is a warning for a bad commit. 

Do not wait for the end of the toposort its a very big advantage for, e.g. GUI git viewers
launched on big trees with long histories.

Marco Costalba




	

	
		
___________________________________ 
Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB 
http://mail.yahoo.it

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
@ 2005-06-01 19:02 Marco Costalba
  0 siblings, 0 replies; 18+ messages in thread
From: Marco Costalba @ 2005-06-01 19:02 UTC (permalink / raw)
  To: git

Linus Torvalds wrote:
> 
> On Tue, 31 May 2005, Linus Torvalds wrote:
> 
>>You should never see a parent before a child from git-rev-list.
> 
> 
> Actually, I take that back.
> 
...

> 
> The thing is, since B has such an "old" date, the traversal assumes that
> it is old and very low down in the tree, and that it's better off parsing
> other commits first, so it will never look more closely at B and notice
> that it has a parent that has already been parsed.
> 

If this is an exception, and I it is, peraphs can be treated in a special way.

As example, when adding a new parent to the pending list of parents to be processed in time-based
ordering, should be easy to inc a counter if  the last one is always the same, e.g. there is the
same very old node around, and check closer to it if the counter reach some allowed maximum.

I know it's a hack, and is not a solution in the general case, but also the last century developer
clock is very rare, more, it is a warning for a bad commit. 

Do not wait for the end of the toposort its a very big advantage for, e.g. GUI git viewers
launched on big trees with long histories.

Marco Costalba







	

	
		
___________________________________ 
Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB 
http://mail.yahoo.it

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-05-31 15:23     ` Linus Torvalds
  2005-06-01 16:38       ` Matthias Urlichs
@ 2005-06-04 15:01       ` Junio C Hamano
  2005-06-04 15:09         ` Thomas Glanzmann
  2005-06-04 15:42         ` Linus Torvalds
  1 sibling, 2 replies; 18+ messages in thread
From: Junio C Hamano @ 2005-06-04 15:01 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Git Mailing List

Linus, what do you think rev-list should do given HEADs from two
forks, like this?

    JC          git-rev-list JC LT ????
     |
     |  LT
     |   |
      \ /
       |
       |
       |

The above is often the shape of my working repository.  I pull
from you, commit a handful on top of your then-HEAD, and when I
am about ready to submit, I pull from you again to find your
HEAD advanced somewhat.

For patch-form submission, I need a list of my commits since I
forked from you.  Also I tend to rebase to your head often,
instead of merging inside my working repository (which makes
later e-mail patch-form submission more work for me), so even
when I am not immediately submitting the changes I have in my
fork, I need that list to forward port my changes.

JIT currently uses this to get this list (as a workaround):

    git-rev-list JC $(merge-base JC LT)

I am wondering if this "since they forked" is usually what the
user wants.  If that is the case then it would be great if I did
not have to do the "merge-base" part outside.

Current "proper lazy reachability" version, btw, does something
very unexpected for my use pattern.  If you have more than one
commits between the fork point and LT HEAD in the above picture,
everything from the beginning of time to JC is given, or
something silly like that.



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-06-04 15:01       ` Junio C Hamano
@ 2005-06-04 15:09         ` Thomas Glanzmann
  2005-06-04 15:42         ` Linus Torvalds
  1 sibling, 0 replies; 18+ messages in thread
From: Thomas Glanzmann @ 2005-06-04 15:09 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Linus Torvalds, Git Mailing List

Hello Junio,
I pull the REMOTE_HEAD including objects but don't merge. After that I
run:

system("git-rev-tree HEAD REMOTE_HEAD | sed -e 's/^[0-9]* //' | git-diff-tree --stdin -v ");

for bitkeeper I used the merge base approach (but at that time I only
knew that this gives me any deltas in the current tree not in the remote
tree, but didn't know how it worked).

bkparentdiff is aliased to `bk rset -hr`bk repogca`,+ | grep -v ^BitKeeper | bk gnupatch -du -e -h -T'

	Thomas

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-06-04 15:01       ` Junio C Hamano
  2005-06-04 15:09         ` Thomas Glanzmann
@ 2005-06-04 15:42         ` Linus Torvalds
  2005-06-04 15:51           ` Linus Torvalds
  2005-06-04 19:41           ` Junio C Hamano
  1 sibling, 2 replies; 18+ messages in thread
From: Linus Torvalds @ 2005-06-04 15:42 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Git Mailing List



On Sat, 4 Jun 2005, Junio C Hamano wrote:
>
> Linus, what do you think rev-list should do given HEADs from two
> forks, like this?
> 
>     JC          git-rev-list JC LT ????
>      |
>      |  LT
>      |   |
>       \ /
>        |
>        |
>        |

Ahh. Ok, I'll fix it. Indeed, I think it should give everything up to the 
merge base.

> Current "proper lazy reachability" version, btw, does something
> very unexpected for my use pattern.  If you have more than one
> commits between the fork point and LT HEAD in the above picture,
> everything from the beginning of time to JC is given, or
> something silly like that.

Yes. The whole thing is written to literally expect to see the "stop here" 
thing, and that's when it starts poisoning the well.

Does this fix it for you (untested, of course)?

		Linus
---
diff --git a/rev-list.c b/rev-list.c
--- a/rev-list.c
+++ b/rev-list.c
@@ -160,6 +160,8 @@ int main(int argc, char **argv)
 		end = lookup_commit_reference(sha1[1]);
 		if (!end || parse_commit(end) < 0)
 			die("bad ending commit object");
+		end->object.flags |= UNINTERESTING;
+		commit_list_insert(end, &list);
 	}
 
 	commit_list_insert(commit, &list);

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-06-04 15:42         ` Linus Torvalds
@ 2005-06-04 15:51           ` Linus Torvalds
  2005-06-04 19:30             ` Junio C Hamano
  2005-06-04 19:46             ` Petr Baudis
  2005-06-04 19:41           ` Junio C Hamano
  1 sibling, 2 replies; 18+ messages in thread
From: Linus Torvalds @ 2005-06-04 15:51 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Git Mailing List



On Sat, 4 Jun 2005, Linus Torvalds wrote:
> 
> Does this fix it for you (untested, of course)?

Btw, as shown by this patch, the lazy git-rev-list algorithm is actually
_supposed_ to be able to handle a lot more complicated cases than what the 
command line interface allows.

In other words, maybe I should have used the same syntax as for 
git-rev-tree, because it _can_ handle things like "show me all revisions 
that are reachable from a or b, but are _not_ reachable from c or d or e.

Is that useful? I dunno. It might be useful for somebody like Jeff, who
has lots of different heads, and he could say "ok, show me what is in all
my network driver heads, but isn't in linus' tree".

Would people prefer to have "git-rev-list" take arguments like

	git-rev-list a b ^c ^d

the way git-rev-tree does?

		Linus

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-06-04 15:51           ` Linus Torvalds
@ 2005-06-04 19:30             ` Junio C Hamano
  2005-06-04 19:46             ` Petr Baudis
  1 sibling, 0 replies; 18+ messages in thread
From: Junio C Hamano @ 2005-06-04 19:30 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Git Mailing List

>>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes:

LT> On Sat, 4 Jun 2005, Linus Torvalds wrote:

>> Does this fix it for you (untested, of course)?

Will check later.

LT> Would people prefer to have "git-rev-list" take arguments like
LT> 	git-rev-list a b ^c ^d
LT> the way git-rev-tree does?

I do not expect myself to maintain many heads like Jeff, I
cannot comment on how well that "many heads" feature would work
in practice, but I would vote "a ^b" syntax to match
git-rev-tree.






^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-06-04 15:42         ` Linus Torvalds
  2005-06-04 15:51           ` Linus Torvalds
@ 2005-06-04 19:41           ` Junio C Hamano
  1 sibling, 0 replies; 18+ messages in thread
From: Junio C Hamano @ 2005-06-04 19:41 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Git Mailing List

>>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes:

LT> Yes. The whole thing is written to literally expect to see the "stop here" 
LT> thing, and that's when it starts poisoning the well.

LT> Does this fix it for you (untested, of course)?

Yes, it does.



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: git-rev-list: proper lazy reachability
  2005-06-04 15:51           ` Linus Torvalds
  2005-06-04 19:30             ` Junio C Hamano
@ 2005-06-04 19:46             ` Petr Baudis
  1 sibling, 0 replies; 18+ messages in thread
From: Petr Baudis @ 2005-06-04 19:46 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Junio C Hamano, Git Mailing List

Dear diary, on Sat, Jun 04, 2005 at 05:51:13PM CEST, I got a letter
where Linus Torvalds <torvalds@osdl.org> told me that...
> Would people prefer to have "git-rev-list" take arguments like
> 
> 	git-rev-list a b ^c ^d
> 
> the way git-rev-tree does?

Yes, please. I think that usage is more consistent and more flexible.

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2005-06-04 19:43 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-31  1:58 git-rev-list: proper lazy reachability Linus Torvalds
2005-05-31  7:58 ` Jon Seymour
2005-05-31 14:35   ` Linus Torvalds
2005-05-31 15:13   ` Linus Torvalds
2005-06-01  0:14     ` Jon Seymour
2005-05-31 12:15 ` Paul Mackerras
2005-05-31 14:39   ` Linus Torvalds
2005-05-31 15:23     ` Linus Torvalds
2005-06-01 16:38       ` Matthias Urlichs
2005-06-04 15:01       ` Junio C Hamano
2005-06-04 15:09         ` Thomas Glanzmann
2005-06-04 15:42         ` Linus Torvalds
2005-06-04 15:51           ` Linus Torvalds
2005-06-04 19:30             ` Junio C Hamano
2005-06-04 19:46             ` Petr Baudis
2005-06-04 19:41           ` Junio C Hamano
  -- strict thread matches above, loose matches on Subject: below --
2005-06-01 18:44 Marco Costalba
2005-06-01 19:02 Marco Costalba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.