diff options
author | Philippe Blain <levraiphilippeblain@gmail.com> | 2021-07-23 15:14:29 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-07-24 01:45:38 +0300 |
commit | 12510bd5da6187690ae957d46b41f59276b0dadc (patch) | |
tree | 63848d6af373acb6ca9ce359f28f36630dcb03a3 /builtin | |
parent | fd441eb612b28e2b0f512ad6d98859c9e82a2cbd (diff) |
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>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/merge.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/builtin/merge.c b/builtin/merge.c index 74797b6c7a..788a6b0cd5 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -1560,6 +1560,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) &head_commit->object.oid, &commit->object.oid, overwrite_ignore)) { + apply_autostash(git_path_merge_autostash(the_repository)); ret = 1; goto done; } |