diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2007-06-25 18:56:55 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-06-26 18:58:45 -0700 |
commit | c54b7817f4f6bf422ea532d81217c28f63c259c5 (patch) | |
tree | fac8ec8c43606f72e921f2560abe3d4cce222e68 | |
parent | ad562a817256adff4faadc17900b4aba67ca471a (diff) | |
download | git-c54b7817f4f6bf422ea532d81217c28f63c259c5.tar.gz git-c54b7817f4f6bf422ea532d81217c28f63c259c5.tar.xz |
rebase -i: several cleanups
Support "--verbose" in addition to "-v", show short names in the list
comment, clean up if there is nothing to do, and add several "test_ticks"
in the test script.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-rebase--interactive.sh | 19 | ||||
-rwxr-xr-x | t/t3404-rebase-interactive.sh | 2 |
2 files changed, 17 insertions, 4 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index ab3657250..a81432c0a 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -60,6 +60,11 @@ die_with_patch () { die "$2" } +die_abort () { + rm -rf "$DOTEST" + die "$1" +} + pick_one () { case "$1" in -n) sha1=$2 ;; *) sha1=$1 ;; esac git rev-parse --verify $sha1 || die "Invalid commit name: $sha1" @@ -212,7 +217,7 @@ do -C*) die "Interactive rebase uses merge, so $1 does not make sense" ;; - -v) + -v|--verbose) VERBOSE=t ;; -i|--interactive) @@ -264,8 +269,11 @@ do echo $ONTO > "$DOTEST"/onto test t = "$VERBOSE" && : > "$DOTEST"/verbose + SHORTUPSTREAM=$(git rev-parse --short $UPSTREAM) + SHORTHEAD=$(git rev-parse --short $HEAD) + SHORTONTO=$(git rev-parse --short $ONTO) cat > "$TODO" << EOF -# Rebasing $UPSTREAM..$HEAD onto $ONTO +# Rebasing $SHORTUPSTREAM..$SHORTHEAD onto $SHORTONTO # # Commands: # pick = use commit @@ -277,13 +285,16 @@ EOF sed "s/^/pick /" >> "$TODO" test -z "$(grep -ve '^$' -e '^#' < $TODO)" && - die "Nothing to do" + die_abort "Nothing to do" cp "$TODO" "$TODO".backup ${VISUAL:-${EDITOR:-vi}} "$TODO" || die "Could not execute editor" - git reset --hard $ONTO && do_rest + test -z "$(grep -ve '^$' -e '^#' < $TODO)" && + die_abort "Nothing to do" + + git checkout $ONTO && do_rest esac shift done diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 48aa8ea81..19a3a8e81 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -140,6 +140,7 @@ test_expect_success 'abort' ' test_expect_success 'retain authorship' ' echo A > file7 && git add file7 && + test_tick && GIT_AUTHOR_NAME="Twerp Snog" git commit -m "different author" && git tag twerp && git rebase -i --onto master HEAD^ && @@ -149,6 +150,7 @@ test_expect_success 'retain authorship' ' test_expect_success 'squash' ' git reset --hard twerp && echo B > file7 && + test_tick && GIT_AUTHOR_NAME="Nitfol" git commit -m "nitfol" file7 && echo "******************************" && FAKE_LINES="1 squash 2" git rebase -i --onto master HEAD~2 && |