diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2009-01-27 12:42:31 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-01-28 14:54:58 -0800 |
commit | 94c88edef7a69299e12248b910752f1fc26f12d6 (patch) | |
tree | a6c9940ce036280e0e5a0db16f32c7d0c164041e | |
parent | rebase -i squashes submodule changes into unrelated commit (diff) | |
download | tgif-94c88edef7a69299e12248b910752f1fc26f12d6.tar.xz |
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 <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-rebase--interactive.sh | 9 | ||||
-rwxr-xr-x | t/t3404-rebase-interactive.sh | 2 |
2 files changed, 5 insertions, 6 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 8ed2244819..1ceb57ae83 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 6ffb9ad794..4becc5513d 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 ' |