rebase -i: do not fail when there is no commit to cherry-pick
In case there is no commit to apply (for example because you rebase to upstream and all your local patches have been applied there), do not fail. The non-interactive rebase already behaves that way. Do this by introducing a new command, "noop", which is substituted for an empty commit list, so that deleting the commit list can still abort as before. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
b8eecafd88
commit
ff74126c03
@ -277,7 +277,7 @@ do_next () {
|
|||||||
"$DOTEST"/amend || exit
|
"$DOTEST"/amend || exit
|
||||||
read command sha1 rest < "$TODO"
|
read command sha1 rest < "$TODO"
|
||||||
case "$command" in
|
case "$command" in
|
||||||
'#'*|'')
|
'#'*|''|noop)
|
||||||
mark_action_done
|
mark_action_done
|
||||||
;;
|
;;
|
||||||
pick|p)
|
pick|p)
|
||||||
@ -584,6 +584,7 @@ first and then run 'git rebase --continue' again."
|
|||||||
--abbrev=7 --reverse --left-right --cherry-pick \
|
--abbrev=7 --reverse --left-right --cherry-pick \
|
||||||
$UPSTREAM...$HEAD | \
|
$UPSTREAM...$HEAD | \
|
||||||
sed -n "s/^>/pick /p" > "$TODO"
|
sed -n "s/^>/pick /p" > "$TODO"
|
||||||
|
test -s "$TODO" || echo noop >> "$TODO"
|
||||||
cat >> "$TODO" << EOF
|
cat >> "$TODO" << EOF
|
||||||
|
|
||||||
# Rebase $SHORTUPSTREAM..$SHORTHEAD onto $SHORTONTO
|
# Rebase $SHORTUPSTREAM..$SHORTHEAD onto $SHORTONTO
|
||||||
|
@ -419,4 +419,15 @@ test_expect_success 'rebase with a file named HEAD in worktree' '
|
|||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'do "noop" when there is nothing to cherry-pick' '
|
||||||
|
|
||||||
|
git checkout -b branch4 HEAD &&
|
||||||
|
GIT_EDITOR=: git commit --amend \
|
||||||
|
--author="Somebody else <somebody@else.com>"
|
||||||
|
test $(git rev-parse branch3) != $(git rev-parse branch4) &&
|
||||||
|
git rebase -i branch3 &&
|
||||||
|
test $(git rev-parse branch3) = $(git rev-parse branch4)
|
||||||
|
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user