]> granicus.if.org Git - git/commit
subtree: improve decision on merges kept in split
authorStrain, Roger L <roger.strain@swri.org>
Fri, 28 Sep 2018 18:35:40 +0000 (13:35 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sat, 6 Oct 2018 23:09:34 +0000 (08:09 +0900)
commit68f8ff81513fb3599ef3dfc3dd11da36d868e91b
tree4a013c3fe14bdf251fd76b1a6d89f6adfc94abdf
parent315a84f9aa0e2e629b0680068646b0032518ebed
subtree: improve decision on merges kept in split

When multiple identical parents are detected for a commit being considered
for copying, explicitly check whether one is the common merge base between
the commits. If so, the other commit can be used as the identical parent;
if not, a merge must be performed to maintain history.

In some situations two parents of a merge commit may appear to both have
identical subtree content with each other and the current commit. However,
those parents can potentially come from different commit graphs.

Previous behavior would simply select one of the identical parents to
serve as the replacement for this commit, based on the order in which they
were processed.

New behavior compares the merge base between the commits to determine if
a new merge commit is necessary to maintain history despite the identical
content.

Signed-off-by: Strain, Roger L <roger.strain@swri.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/subtree/git-subtree.sh