Extend the "edit" command to simply stop for editing if no sha1 is given. This behaves the same as "x false" but is a bit friendlier for the user. Signed-off-by: Kevin Ballard <kevin@xxxxxx> --- git-rebase--interactive.sh | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 9121bb6..a8e00a2 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -477,10 +477,19 @@ do_next () { comment_for_reflog edit mark_action_done - pick_one $sha1 || - die_with_patch $sha1 "Could not apply $sha1... $rest" - echo "$sha1" > "$DOTEST"/stopped-sha - make_patch $sha1 + if test -n "$sha1"; then + pick_one $sha1 || + die_with_patch $sha1 "Could not apply $sha1... $rest" + echo "$sha1" > "$DOTEST"/stopped-sha + make_patch $sha1 + else + # we just want to exit to the shell + # we don't have a $sha1 or $rest, so recreate that + line=$(git rev-list --pretty=oneline -1 --abbrev-commit --abbrev=7 HEAD) + sha1="${line%% *}" + rest="${line#* }" + echo "$sha1" > "$DOTEST"/stopped-sha + fi git rev-parse --verify HEAD > "$AMEND" warn "Stopped at $sha1... $rest" warn "You can amend the commit now, with" @@ -1003,7 +1012,7 @@ first and then run 'git rebase --continue' again." # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message -# e, edit = use commit, but stop for amending +# e, edit = use commit (if specified), but pause to amend/examine/test # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x <cmd>, exec <cmd> = Run a shell command <cmd>, and stop if it fails -- 1.7.3.2.203.gd142e -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html