mirror of
https://github.com/git-for-windows/git.git
synced 2025-12-15 04:04:52 -06:00
Merge branch 'nd/cherry-pick-quit-fix'
"git cherry-pick --quit" failed to remove CHERRY_PICK_HEAD even though we won't be in a cherry-pick session after it returns, which has been corrected. * nd/cherry-pick-quit-fix: cherry-pick: fix --quit not deleting CHERRY_PICK_HEAD
This commit is contained in:
commit
39e415cfd1
@ -7,6 +7,7 @@
|
|||||||
#include "rerere.h"
|
#include "rerere.h"
|
||||||
#include "dir.h"
|
#include "dir.h"
|
||||||
#include "sequencer.h"
|
#include "sequencer.h"
|
||||||
|
#include "branch.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This implements the builtins revert and cherry-pick.
|
* This implements the builtins revert and cherry-pick.
|
||||||
@ -191,8 +192,12 @@ static int run_sequencer(int argc, const char **argv, struct replay_opts *opts)
|
|||||||
opts->gpg_sign = xstrdup_or_null(opts->gpg_sign);
|
opts->gpg_sign = xstrdup_or_null(opts->gpg_sign);
|
||||||
opts->strategy = xstrdup_or_null(opts->strategy);
|
opts->strategy = xstrdup_or_null(opts->strategy);
|
||||||
|
|
||||||
if (cmd == 'q')
|
if (cmd == 'q') {
|
||||||
return sequencer_remove_state(opts);
|
int ret = sequencer_remove_state(opts);
|
||||||
|
if (!ret)
|
||||||
|
remove_branch_state();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
if (cmd == 'c')
|
if (cmd == 'c')
|
||||||
return sequencer_continue(opts);
|
return sequencer_continue(opts);
|
||||||
if (cmd == 'a')
|
if (cmd == 'a')
|
||||||
|
|||||||
@ -103,7 +103,8 @@ test_expect_success '--quit cleans up sequencer state' '
|
|||||||
pristine_detach initial &&
|
pristine_detach initial &&
|
||||||
test_expect_code 1 git cherry-pick base..picked &&
|
test_expect_code 1 git cherry-pick base..picked &&
|
||||||
git cherry-pick --quit &&
|
git cherry-pick --quit &&
|
||||||
test_path_is_missing .git/sequencer
|
test_path_is_missing .git/sequencer &&
|
||||||
|
test_path_is_missing .git/CHERRY_PICK_HEAD
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '--quit keeps HEAD and conflicted index intact' '
|
test_expect_success '--quit keeps HEAD and conflicted index intact' '
|
||||||
@ -132,6 +133,7 @@ test_expect_success '--abort to cancel multiple cherry-pick' '
|
|||||||
test_expect_code 1 git cherry-pick base..anotherpick &&
|
test_expect_code 1 git cherry-pick base..anotherpick &&
|
||||||
git cherry-pick --abort &&
|
git cherry-pick --abort &&
|
||||||
test_path_is_missing .git/sequencer &&
|
test_path_is_missing .git/sequencer &&
|
||||||
|
test_path_is_missing .git/CHERRY_PICK_HEAD &&
|
||||||
test_cmp_rev initial HEAD &&
|
test_cmp_rev initial HEAD &&
|
||||||
git update-index --refresh &&
|
git update-index --refresh &&
|
||||||
git diff-index --exit-code HEAD
|
git diff-index --exit-code HEAD
|
||||||
@ -142,6 +144,7 @@ test_expect_success '--abort to cancel single cherry-pick' '
|
|||||||
test_expect_code 1 git cherry-pick picked &&
|
test_expect_code 1 git cherry-pick picked &&
|
||||||
git cherry-pick --abort &&
|
git cherry-pick --abort &&
|
||||||
test_path_is_missing .git/sequencer &&
|
test_path_is_missing .git/sequencer &&
|
||||||
|
test_path_is_missing .git/CHERRY_PICK_HEAD &&
|
||||||
test_cmp_rev initial HEAD &&
|
test_cmp_rev initial HEAD &&
|
||||||
git update-index --refresh &&
|
git update-index --refresh &&
|
||||||
git diff-index --exit-code HEAD
|
git diff-index --exit-code HEAD
|
||||||
@ -162,6 +165,7 @@ test_expect_success 'cherry-pick --abort to cancel multiple revert' '
|
|||||||
test_expect_code 1 git revert base..picked &&
|
test_expect_code 1 git revert base..picked &&
|
||||||
git cherry-pick --abort &&
|
git cherry-pick --abort &&
|
||||||
test_path_is_missing .git/sequencer &&
|
test_path_is_missing .git/sequencer &&
|
||||||
|
test_path_is_missing .git/CHERRY_PICK_HEAD &&
|
||||||
test_cmp_rev anotherpick HEAD &&
|
test_cmp_rev anotherpick HEAD &&
|
||||||
git update-index --refresh &&
|
git update-index --refresh &&
|
||||||
git diff-index --exit-code HEAD
|
git diff-index --exit-code HEAD
|
||||||
@ -239,6 +243,7 @@ test_expect_success '--abort after last commit in sequence' '
|
|||||||
test_expect_code 1 git cherry-pick base..picked &&
|
test_expect_code 1 git cherry-pick base..picked &&
|
||||||
git cherry-pick --abort &&
|
git cherry-pick --abort &&
|
||||||
test_path_is_missing .git/sequencer &&
|
test_path_is_missing .git/sequencer &&
|
||||||
|
test_path_is_missing .git/CHERRY_PICK_HEAD &&
|
||||||
test_cmp_rev initial HEAD &&
|
test_cmp_rev initial HEAD &&
|
||||||
git update-index --refresh &&
|
git update-index --refresh &&
|
||||||
git diff-index --exit-code HEAD
|
git diff-index --exit-code HEAD
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user