]> git.ipfire.org Git - thirdparty/git.git/commit
merge: apply autostash if fast-forward fails
authorPhilippe Blain <levraiphilippeblain@gmail.com>
Fri, 23 Jul 2021 12:14:29 +0000 (12:14 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 23 Jul 2021 22:45:38 +0000 (15:45 -0700)
commit12510bd5da6187690ae957d46b41f59276b0dadc
tree63848d6af373acb6ca9ce359f28f36630dcb03a3
parentfd441eb612b28e2b0f512ad6d98859c9e82a2cbd
merge: apply autostash if fast-forward fails

Since 'git merge' learned '--autostash' in a03b55530a (merge: teach
--autostash option, 2020-04-07), 'cmd_merge', in the fast-forward case,
calls 'create_autostash' before calling 'checkout_fast_forward' if
'--autostash' is given.

However, if 'checkout_fast_forward' fails, the autostash is not applied
to the working tree, nor saved in the stash list, since the code simply
calls 'goto done'.

Be more helpful to the user by applying the autostash in that case.

An easy way to test a failing fast-forward is when we are merging a
branch that has a tracked file that conflicts with an untracked file in
the working tree.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/merge.c
t/t7600-merge.sh