Merge branch 'tr/notes-display'
[gitweb.git] / git-rebase--interactive.sh
index d72f549f61258e81f9a1be305441402f276c35ab..415ae72dbc298d7723cdd23b1396c8a6d24dbe08 100755 (executable)
@@ -223,10 +223,10 @@ has_action () {
 # Run command with GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, and
 # GIT_AUTHOR_DATE exported from the current environment.
 do_with_author () {
-       GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
-       GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
-       GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
-       "$@"
+       (
+               export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
+               "$@"
+       )
 }
 
 pick_one () {
@@ -387,7 +387,7 @@ update_squash_messages () {
                        sed -e 1d -e '2,/^./{
                                /^$/d
                        }' <"$SQUASH_MSG".bak
-               } >$SQUASH_MSG
+               } >"$SQUASH_MSG"
        else
                commit_message HEAD > "$FIXUP_MSG" || die "Cannot write $FIXUP_MSG"
                COUNT=2
@@ -396,7 +396,7 @@ update_squash_messages () {
                        echo "# The first commit's message is:"
                        echo
                        cat "$FIXUP_MSG"
-               } >$SQUASH_MSG
+               } >"$SQUASH_MSG"
        fi
        case $1 in
        squash)
@@ -412,11 +412,11 @@ update_squash_messages () {
                echo
                commit_message $2 | sed -e 's/^/#       /'
                ;;
-       esac >>$SQUASH_MSG
+       esac >>"$SQUASH_MSG"
 }
 
 peek_next_command () {
-       sed -n -e "/^#/d" -e "/^$/d" -e "s/ .*//p" -e "q" < "$TODO"
+       sed -n -e "/^#/d" -e '/^$/d' -e "s/ .*//p" -e "q" < "$TODO"
 }
 
 # A squash/fixup has failed.  Prepare the long version of the squash
@@ -570,6 +570,10 @@ do_next () {
                test ! -f "$DOTEST"/verbose ||
                        git diff-tree --stat $(cat "$DOTEST"/head)..HEAD
        } &&
+       {
+               git notes copy --for-rewrite=rebase < "$REWRITTEN_LIST" ||
+               true # we don't care if this copying failed
+       } &&
        if test -x "$GIT_DIR"/hooks/post-rewrite &&
                test -s "$REWRITTEN_LIST"; then
                "$GIT_DIR"/hooks/post-rewrite rebase < "$REWRITTEN_LIST"