From: Johannes Schindelin Date: Tue, 27 Jan 2009 11:42:31 +0000 (+0100) Subject: Fix submodule squashing into unrelated commit X-Git-Tag: v1.6.2-rc0~46^2 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=94c88edef7a69299e12248b910752f1fc26f12d6;p=git.git Fix submodule squashing into unrelated commit Actually, I think the issue is pretty independent of submodules; when "git commit" gets an empty parameter, it misinterprets it as a file. So avoid passing an empty parameter to "git commit". Actually, this is a nice cleanup, as MSG_FILE and EDIT_COMMIT were mutually exclusive; use one variable instead Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 8ed224481..1ceb57ae8 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -360,17 +360,15 @@ do_next () { pick_one -n $sha1 || failed=t case "$(peek_next_command)" in squash|s) - EDIT_COMMIT= USE_OUTPUT=output MSG_OPT=-F - MSG_FILE="$MSG" + EDIT_OR_FILE="$MSG" cp "$MSG" "$SQUASH_MSG" ;; *) - EDIT_COMMIT=-e USE_OUTPUT= MSG_OPT= - MSG_FILE= + EDIT_OR_FILE=-e rm -f "$SQUASH_MSG" || exit cp "$MSG" "$GIT_DIR"/SQUASH_MSG rm -f "$GIT_DIR"/MERGE_MSG || exit @@ -384,7 +382,8 @@ do_next () { GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \ GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \ GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \ - $USE_OUTPUT git commit --no-verify $MSG_OPT "$MSG_FILE" $EDIT_COMMIT || failed=t + $USE_OUTPUT git commit --no-verify \ + $MSG_OPT "$EDIT_OR_FILE" || failed=t fi if test $failed = t then diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 6ffb9ad79..4becc5513 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -484,7 +484,7 @@ test_expect_success 'submodule rebase setup' ' git commit -a -m "Three changes submodule" ' -test_expect_failure 'submodule rebase -i' ' +test_expect_success 'submodule rebase -i' ' FAKE_LINES="1 squash 2 3" git rebase -i A '