Merge branch 'zh/cherry-pick-advice'
The advice message that "git cherry-pick" gives when it asks conflicted replay of a commit to be resolved by the end user has been updated. * zh/cherry-pick-advice: cherry-pick: use better advice message
This commit is contained in:
commit
173368d73d
20
sequencer.c
20
sequencer.c
@ -403,7 +403,7 @@ static void print_advice(struct repository *r, int show_hint,
|
|||||||
char *msg = getenv("GIT_CHERRY_PICK_HELP");
|
char *msg = getenv("GIT_CHERRY_PICK_HELP");
|
||||||
|
|
||||||
if (msg) {
|
if (msg) {
|
||||||
fprintf(stderr, "%s\n", msg);
|
advise("%s\n", msg);
|
||||||
/*
|
/*
|
||||||
* A conflict has occurred but the porcelain
|
* A conflict has occurred but the porcelain
|
||||||
* (typically rebase --interactive) wants to take care
|
* (typically rebase --interactive) wants to take care
|
||||||
@ -418,10 +418,22 @@ static void print_advice(struct repository *r, int show_hint,
|
|||||||
if (opts->no_commit)
|
if (opts->no_commit)
|
||||||
advise(_("after resolving the conflicts, mark the corrected paths\n"
|
advise(_("after resolving the conflicts, mark the corrected paths\n"
|
||||||
"with 'git add <paths>' or 'git rm <paths>'"));
|
"with 'git add <paths>' or 'git rm <paths>'"));
|
||||||
|
else if (opts->action == REPLAY_PICK)
|
||||||
|
advise(_("After resolving the conflicts, mark them with\n"
|
||||||
|
"\"git add/rm <pathspec>\", then run\n"
|
||||||
|
"\"git cherry-pick --continue\".\n"
|
||||||
|
"You can instead skip this commit with \"git cherry-pick --skip\".\n"
|
||||||
|
"To abort and get back to the state before \"git cherry-pick\",\n"
|
||||||
|
"run \"git cherry-pick --abort\"."));
|
||||||
|
else if (opts->action == REPLAY_REVERT)
|
||||||
|
advise(_("After resolving the conflicts, mark them with\n"
|
||||||
|
"\"git add/rm <pathspec>\", then run\n"
|
||||||
|
"\"git revert --continue\".\n"
|
||||||
|
"You can instead skip this commit with \"git revert --skip\".\n"
|
||||||
|
"To abort and get back to the state before \"git revert\",\n"
|
||||||
|
"run \"git revert --abort\"."));
|
||||||
else
|
else
|
||||||
advise(_("after resolving the conflicts, mark the corrected paths\n"
|
BUG("unexpected pick action in print_advice()");
|
||||||
"with 'git add <paths>' or 'git rm <paths>'\n"
|
|
||||||
"and commit the result with 'git commit'"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,4 +158,20 @@ test_expect_success 'cherry-pick works with dirty renamed file' '
|
|||||||
grep -q "^modified$" renamed
|
grep -q "^modified$" renamed
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'advice from failed revert' '
|
||||||
|
test_commit --no-tag "add dream" dream dream &&
|
||||||
|
dream_oid=$(git rev-parse --short HEAD) &&
|
||||||
|
cat <<-EOF >expected &&
|
||||||
|
error: could not revert $dream_oid... add dream
|
||||||
|
hint: After resolving the conflicts, mark them with
|
||||||
|
hint: "git add/rm <pathspec>", then run
|
||||||
|
hint: "git revert --continue".
|
||||||
|
hint: You can instead skip this commit with "git revert --skip".
|
||||||
|
hint: To abort and get back to the state before "git revert",
|
||||||
|
hint: run "git revert --abort".
|
||||||
|
EOF
|
||||||
|
test_commit --append --no-tag "double-add dream" dream dream &&
|
||||||
|
test_must_fail git revert HEAD^ 2>actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
test_done
|
test_done
|
||||||
|
@ -47,20 +47,23 @@ test_expect_success 'failed cherry-pick does not advance HEAD' '
|
|||||||
test "$head" = "$newhead"
|
test "$head" = "$newhead"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'advice from failed cherry-pick' "
|
test_expect_success 'advice from failed cherry-pick' '
|
||||||
pristine_detach initial &&
|
pristine_detach initial &&
|
||||||
|
|
||||||
picked=\$(git rev-parse --short picked) &&
|
picked=$(git rev-parse --short picked) &&
|
||||||
cat <<-EOF >expected &&
|
cat <<-EOF >expected &&
|
||||||
error: could not apply \$picked... picked
|
error: could not apply $picked... picked
|
||||||
hint: after resolving the conflicts, mark the corrected paths
|
hint: After resolving the conflicts, mark them with
|
||||||
hint: with 'git add <paths>' or 'git rm <paths>'
|
hint: "git add/rm <pathspec>", then run
|
||||||
hint: and commit the result with 'git commit'
|
hint: "git cherry-pick --continue".
|
||||||
|
hint: You can instead skip this commit with "git cherry-pick --skip".
|
||||||
|
hint: To abort and get back to the state before "git cherry-pick",
|
||||||
|
hint: run "git cherry-pick --abort".
|
||||||
EOF
|
EOF
|
||||||
test_must_fail git cherry-pick picked 2>actual &&
|
test_must_fail git cherry-pick picked 2>actual &&
|
||||||
|
|
||||||
test_cmp expected actual
|
test_cmp expected actual
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'advice from failed cherry-pick --no-commit' "
|
test_expect_success 'advice from failed cherry-pick --no-commit' "
|
||||||
pristine_detach initial &&
|
pristine_detach initial &&
|
||||||
|
Loading…
Reference in New Issue
Block a user