]> git.ipfire.org Git - thirdparty/git.git/commit
subtree: fix argument handling in check_parents
authorJames Limbouris <james@digitalmatter.com>
Wed, 8 Dec 2021 02:11:58 +0000 (02:11 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 4 Jan 2022 19:38:19 +0000 (11:38 -0800)
commit3ce8888fb499f9646b770306be6e2c7674a75199
treec808d9ef78f7210d7412e1e73daebd5fee5e801a
parente9d7761bb94f20acc98824275e317fa82436c25d
subtree: fix argument handling in check_parents

315a84f9aa0 (subtree: use commits before rejoins for splits, 2018-09-28)
changed the signature of check_parents from 'check_parents [REV...]'
to 'check_parents PARENTS_EXPR INDENT'. In other words the variable list
of parent revisions became a list embedded in a string. However it
neglected to unpack the list again before sending it to cache_miss,
leading to incorrect calls whenever more than one parent was present.
This is the case whenever a merge commit is processed, with the end
result being a loss of performance from unecessary rechecks.

The indent parameter was subsequently removed in e9525a8a029 (subtree:
have $indent actually affect indentation, 2021-04-27), but the argument
handling bug remained.

For consistency, take multiple arguments in check_parents,
and pass all of them to cache_miss separately.

Signed-off-by: James Limbouris <james@digitalmatter.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/subtree/git-subtree.sh