On Sun, 5 Feb 2012, Andreas Schwab wrote: > Jakub Narebski <jnareb@xxxxxxxxx> writes: >> Andreas Schwab <schwab@xxxxxxxxxxxxxx> writes: >>> Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> writes: >>> >>>> "the successor of <commit>", OTOH, is not well defined, since there can >>>> be several successors, and one can't order them reliably (you can't >>>> really know the set of successors, because they can exist in different >>>> repositories). >>> >>> Yet it would be nice to have a concise notation for "the nth successor >>> of <commit> towards <commit>" (using --first-parent ordering when >>> ambiguous). >> >> First, "the nth successor"... from which refs? > > From the first given commit towards the other given commit (the latter > defaulting to HEAD). That helps some, but not all situations, see below. > > Second, `--first-parent' won't help here. Take for example the > > following situation: > > > > ---X<---*<---.<---A > > \ > > \--.<---B > > > > X+3 is A or B? > > If "towards A" then it is A, if "towards B", it is B. In other words, > to get the "nth successor of C1 towards C2" take the leftmost possible > parent when walking from C2 to C1, then walk back n commits along this > path. This way you should have an unambigous definition. Nope, still ambiguous: ---X<---*<---.<---A<---.<---M<--- \ / \--.<---B<------/ Is X+3 A or B? Though '--first-parent + towards N' is I think unambiguous. -- Jakub Narebski Poland -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html