{"thread":{"id":"9185","subject":"[PATCH] Shut \"git rebase -i\" up when no --verbose was given","startedAt":"2007-07-23T22:45:49Z","lastAt":"2007-07-23T22:45:49Z","messageCount":1,"participants":["Johannes Schindelin"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"48368","messageId":"Pine.LNX.4.64.0707232342090.14781@racer.site","threadId":"9185","inReplyTo":null,"subject":"[PATCH] Shut \"git rebase -i\" up when no --verbose was given","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-07-23T22:45:49Z","receivedAt":"2007-07-23T22:45:49Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"\nUp to now, git rebase -i was quite chatty, showing through all the\nnice core programs it called.\n\nNow it only shows a progress meter by default.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n git-rebase--interactive.sh |   50 +++++++++++++++++++++++++++++--------------\n 1 files changed, 34 insertions(+), 16 deletions(-)\n\ndiff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh\nindex 579a45e..ac1f5a2 100755\n--- a/git-rebase--interactive.sh\n+++ b/git-rebase--interactive.sh\n@@ -33,6 +33,20 @@ warn () {\n \techo \"$*\" >&2\n }\n \n+output () {\n+\tcase \"$VERBOSE\" in\n+\t'')\n+\t\t\"$@\" > \"$DOTEST\"/output 2>&1\n+\t\tstatus=$?\n+\t\ttest $status != 0 &&\n+\t\t\tcat \"$DOTEST\"/output\n+\t\treturn $status\n+\t;;\n+\t*)\n+\t\t\"$@\"\n+\tesac\n+}\n+\n require_clean_work_tree () {\n \t# test if working tree is dirty\n \tgit rev-parse --verify HEAD > /dev/null &&\n@@ -56,6 +70,10 @@ mark_action_done () {\n \tsed -e 1q < \"$TODO\" >> \"$DONE\"\n \tsed -e 1d < \"$TODO\" >> \"$TODO\".new\n \tmv -f \"$TODO\".new \"$TODO\"\n+\tcount=$(($(wc -l < \"$DONE\")))\n+\ttotal=$(($count+$(wc -l < \"$TODO\")))\n+\tprintf \"Rebasing (%d/%d)\\r\" $count $total\n+\ttest -z \"$VERBOSE\" || echo\n }\n \n make_patch () {\n@@ -79,18 +97,18 @@ die_abort () {\n \n pick_one () {\n \tcase \"$1\" in -n) sha1=$2 ;; *) sha1=$1 ;; esac\n-\tgit rev-parse --verify $sha1 || die \"Invalid commit name: $sha1\"\n+\toutput git rev-parse --verify $sha1 || die \"Invalid commit name: $sha1\"\n \ttest -d \"$REWRITTEN\" &&\n \t\tpick_one_preserving_merges \"$@\" && return\n \tparent_sha1=$(git rev-parse --verify $sha1^ 2>/dev/null)\n \tcurrent_sha1=$(git rev-parse --verify HEAD)\n \tif [ $current_sha1 = $parent_sha1 ]; then\n-\t\tgit reset --hard $sha1\n-\t\ttest \"a$1\" = a-n && git reset --soft $current_sha1\n+\t\toutput git reset --hard $sha1\n+\t\ttest \"a$1\" = a-n && output git reset --soft $current_sha1\n \t\tsha1=$(git rev-parse --short $sha1)\n-\t\twarn Fast forward to $sha1\n+\t\toutput warn Fast forward to $sha1\n \telse\n-\t\tgit cherry-pick $STRATEGY \"$@\"\n+\t\toutput git cherry-pick $STRATEGY \"$@\"\n \tfi\n }\n \n@@ -127,7 +145,7 @@ pick_one_preserving_merges () {\n \tdone\n \tcase $fast_forward in\n \tt)\n-\t\techo \"Fast forward to $sha1\"\n+\t\toutput warn \"Fast forward to $sha1\"\n \t\ttest $preserve=f && echo $sha1 > \"$REWRITTEN\"/$sha1\n \t\t;;\n \tf)\n@@ -135,7 +153,7 @@ pick_one_preserving_merges () {\n \n \t\tfirst_parent=$(expr \"$new_parents\" : \" \\([^ ]*\\)\")\n \t\t# detach HEAD to current parent\n-\t\tgit checkout $first_parent 2> /dev/null ||\n+\t\toutput git checkout $first_parent 2> /dev/null ||\n \t\t\tdie \"Cannot move HEAD to $first_parent\"\n \n \t\techo $sha1 > \"$DOTEST\"/current-commit\n@@ -147,14 +165,14 @@ pick_one_preserving_merges () {\n \t\t\tmsg=\"$(git cat-file commit $sha1 | \\\n \t\t\t\tsed -e '1,/^$/d' -e \"s/[\\\"\\\\]/\\\\\\\\&/g\")\"\n \t\t\t# NEEDSWORK: give rerere a chance\n-\t\t\tif ! git merge $STRATEGY -m \"$msg\" $new_parents\n+\t\t\tif ! output git merge $STRATEGY -m \"$msg\" $new_parents\n \t\t\tthen\n \t\t\t\techo \"$msg\" > \"$GIT_DIR\"/MERGE_MSG\n \t\t\t\tdie Error redoing merge $sha1\n \t\t\tfi\n \t\t\t;;\n \t\t*)\n-\t\t\tgit cherry-pick $STRATEGY \"$@\" ||\n+\t\t\toutput git cherry-pick $STRATEGY \"$@\" ||\n \t\t\t\tdie_with_patch $sha1 \"Could not pick $sha1\"\n \t\tesac\n \tesac\n@@ -241,7 +259,7 @@ do_next () {\n \n \t\tfailed=f\n \t\tpick_one -n $sha1 || failed=t\n-\t\tgit reset --soft HEAD^\n+\t\toutput git reset --soft HEAD^\n \t\tauthor_script=$(get_author_ident_from_commit $sha1)\n \t\techo \"$author_script\" > \"$DOTEST\"/author-script\n \t\tcase $failed in\n@@ -249,7 +267,7 @@ do_next () {\n \t\t\t# This is like --amend, but with a different message\n \t\t\teval \"$author_script\"\n \t\t\texport GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE\n-\t\t\tgit commit -F \"$MSG\" $EDIT_COMMIT\n+\t\t\toutput git commit -F \"$MSG\" $EDIT_COMMIT\n \t\t\t;;\n \t\tt)\n \t\t\tcp \"$MSG\" \"$GIT_DIR\"/MERGE_MSG\n@@ -324,7 +342,7 @@ do\n \t\tHEADNAME=$(cat \"$DOTEST\"/head-name)\n \t\tHEAD=$(cat \"$DOTEST\"/head)\n \t\tgit symbolic-ref HEAD $HEADNAME &&\n-\t\tgit reset --hard $HEAD &&\n+\t\toutput git reset --hard $HEAD &&\n \t\trm -rf \"$DOTEST\"\n \t\texit\n \t\t;;\n@@ -333,7 +351,7 @@ do\n \n \t\ttest -d \"$DOTEST\" || die \"No interactive rebase running\"\n \n-\t\tgit reset --hard && do_rest\n+\t\toutput git reset --hard && do_rest\n \t\t;;\n \t-s|--strategy)\n \t\tshift\n@@ -387,9 +405,9 @@ do\n \n \t\tif [ ! -z \"$2\"]\n \t\tthen\n-\t\t\tgit show-ref --verify --quiet \"refs/heads/$2\" ||\n+\t\t\toutput git show-ref --verify --quiet \"refs/heads/$2\" ||\n \t\t\t\tdie \"Invalid branchname: $2\"\n-\t\t\tgit checkout \"$2\" ||\n+\t\t\toutput git checkout \"$2\" ||\n \t\t\t\tdie \"Could not checkout $2\"\n \t\tfi\n \n@@ -456,7 +474,7 @@ EOF\n \t\ttest -z \"$(grep -ve '^$' -e '^#' < $TODO)\" &&\n \t\t\tdie_abort \"Nothing to do\"\n \n-\t\tgit checkout $ONTO && do_rest\n+\t\toutput git checkout $ONTO && do_rest\n \tesac\n \tshift\n done\n-- \n1.5.3.rc2.32.g35c5b\n"}]}