mirror of
https://github.com/git/git.git
synced 2026-04-11 17:30:08 +02:00
merge: add --quit
This allows to cancel the current merge without resetting worktree/index, which is what --abort is for. Like other --quit(s), this is often used when you forgot that you're in the middle of a merge and already switched away, doing different things. By the time you've realized, you can't even continue the merge anymore. This also makes all in-progress commands, am, merge, rebase, revert and cherry-pick, take all three --abort, --continue and --quit (bisect has a different UI). Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
b64335554a
commit
f3f8311ec7
@@ -822,4 +822,30 @@ test_expect_success EXECKEEPSPID 'killed merge can be completed with --continue'
|
||||
verify_parents $c0 $c1
|
||||
'
|
||||
|
||||
test_expect_success 'merge --quit' '
|
||||
git init merge-quit &&
|
||||
(
|
||||
cd merge-quit &&
|
||||
test_commit base &&
|
||||
echo one >>base.t &&
|
||||
git commit -am one &&
|
||||
git branch one &&
|
||||
git checkout base &&
|
||||
echo two >>base.t &&
|
||||
git commit -am two &&
|
||||
test_must_fail git -c rerere.enabled=true merge one &&
|
||||
test_path_is_file .git/MERGE_HEAD &&
|
||||
test_path_is_file .git/MERGE_MODE &&
|
||||
test_path_is_file .git/MERGE_MSG &&
|
||||
git rerere status >rerere.before &&
|
||||
git merge --quit &&
|
||||
test_path_is_missing .git/MERGE_HEAD &&
|
||||
test_path_is_missing .git/MERGE_MODE &&
|
||||
test_path_is_missing .git/MERGE_MSG &&
|
||||
git rerere status >rerere.after &&
|
||||
test_must_be_empty rerere.after &&
|
||||
! test_cmp rerere.after rerere.before
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user