Michael Haggerty <mhag...@alum.mit.edu> writes:
> It seems to me that
> git rev-list --first-parent --ancestry-path A..B
> is well-defined and should list the commits in the intersection between
> git rev-list --first-parent A..B
> git rev-list --ancestry-path A..B
> But in many cases the first command doesn't provide any output even
> though there are commits common to the output of the last two commands.
> For example, take as an example the DAG from test t6019:
> # D---E-------F
> # / \ \
> # B---C---G---H---I---J
> # / \
> # A-------K---------------L--M
> (The merges are always downwards; e.g., the first parent of commit L is
> K.) The command
> git rev-list --first-parent --ancestry-path D..J
> doesn't generate any output, whereas I would expect it to output "H I
As I do not see how "only show first-parent chains from near the tip
but stop immediately when the chain deviates from the ancestry path"
could be a sensible operation (in other words, I do not offhand
think of examples of what useful things you can do with that
information), I actually expect that "-f-p -a-p D..J" should error
out, instead of giving no output.
You are correct to point out that sometimes -f-p and -a-p _could_ be
compatible, e.g. "-f-p -a-p A..M", or "-f-p -a-p B..M". But I think
the only case that they are compatible is when "-f-p" output is a
strict subset of what "-a-p" without "-f-p" would give.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html