merge-recursive: fix assumption that head tree being merged is HEAD
authorElijah Newren <newren@gmail.com>
Sun, 1 Jul 2018 01:25:00 +0000 (18:25 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 11 Jul 2018 16:38:36 +0000 (09:38 -0700)
commite1f8694f3394caf3d3cd57c6c7593f0b0cdb1f9e
treedd07179f9af2ebd29a518d3553ea061ceb099b77
parent92702392cefdbd66ca593fa909540230ef9e005e
merge-recursive: fix assumption that head tree being merged is HEAD

`git merge-recursive` does a three-way merge between user-specified trees
base, head, and remote.  Since the user is allowed to specify head, we can
not necesarily assume that head == HEAD.

Modify index_has_changes() to take an extra argument specifying the tree
to compare against.  If NULL, it will compare to HEAD.  We then use this
from merge-recursive to make sure we compare to the user-specified head.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/am.c
cache.h
merge-recursive.c
read-cache.c
t/t6044-merge-unrelated-index-changes.sh