revision.c: treat A...B merge bases as if manually specified
authorKevin Bracey <kevin@bracey.fi>
Mon, 13 May 2013 15:00:47 +0000 (18:00 +0300)
committerJunio C Hamano <gitster@pobox.com>
Thu, 16 May 2013 18:45:34 +0000 (11:45 -0700)
commita765499a0884375c47c78d0d1e2926e875074427
tree2ef7689495516b64b25f213a4150a43afd7a6199
parentf659031c1ceb979d423161541a8a3763bfd7c96c
revision.c: treat A...B merge bases as if manually specified

The documentation assures users that "A...B" is defined as "A B --not
$(git merge-base --all A B)". This wasn't in fact quite true, because
the calculated merge bases were not sent to add_rev_cmdline().

The main effect of this was that although

  git rev-list --ancestry-path A B --not $(git merge-base --all A B)

worked, the simpler form

  git rev-list --ancestry-path A...B

failed with a "no bottom commits" error.

Other potential users of bottom commits could also be affected by this
problem, if they examine revs->cmdline_info; I came across the issue in
my proposed history traversal refinements series.

So ensure that the calculated merge bases are sent to add_rev_cmdline(),
flagged with new 'whence' enum value REV_CMD_MERGE_BASE.

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
revision.c
revision.h
t/t6019-rev-list-ancestry-path.sh