Junio C Hamano <junkio@xxxxxxx> writes: > "Marco Costalba" <mcostalba@xxxxxxxxx> writes: > >> In a less corner case, just to better explaing my idea, consider this: >> >> a---b---d---e---f---g---h >> t1 \ / t3 >> ---c >> t2 >> >> Where our sha1 is still "e", in this case >> >> git-rev-list --topo-order <e> ^a ^c ^g >> >> gives, as last revision in output list, "f" >> Then parentOf(<f>) is <g> and our looked for tag is t3 > > Sorry, in the example time flows from left to right. If you > exclude g then you are excluding everything that is reachable > from g so you would not see "f". > > Even if your example is different from what I gave (which had > "a" as the root commit) and h is the root commit, your ^a and ^c > would exclude everything that is reachable from either a or c, > so you would get an empty set. So your "last revision in > output" would not be "f" either. BTW, that was exactly what I meant by "2^N permutations of tags". If you exclude all tags that are older than "e" then your algorithm would work beautifully, but the algorithm is about finding out which tags are older than "e" to begin with, so... - : 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