Re: [PATCH 1/2] git-rebase-interactive: do not squash commits on abort
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 9, 2008, 00:06 UTC
- Message-ID
- <7v7i9mdvyr.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <1220906569-26878-1-git-send-email-dpotapov@gmail.com>
Dmitry Potapov <dpotapov@gmail.com> writes:
Show 36 quoted lines
> If git rebase interactive is stopped by "edit" command and then the user
> said "git rebase --continue" while having some stage changes, git rebase
> interactive is trying to amend the last commit by doing:
> git --soft reset && git commit
>
> However, the user can abort commit for some reason by providing an empty
> log message, and that would leave the last commit undone, while the user
> being completely unaware about what happened. Now if the user tries to
> continue, by issuing "git rebase --continue" that squashes two previous
> commits.
>
> Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
> ---
> git-rebase--interactive.sh | 7 +++++--
> 1 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
> index 929d681..5b2b1e5 100755
> --- a/git-rebase--interactive.sh
> +++ b/git-rebase--interactive.sh
> @@ -429,12 +429,15 @@ do
> die "Cannot find the author identity"
> if test -f "$DOTEST"/amend
> then
> + amend=$(git rev-parse --verify HEAD)
> git reset --soft HEAD^ ||
> die "Cannot rewind the HEAD"
> fi
> export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE &&
> - git commit --no-verify -F "$DOTEST"/message -e ||
> - die "Could not commit staged changes."
> + git commit --no-verify -F "$DOTEST"/message -e || {
> + test -n "$amend" && git reset --soft $amend
> + die "Could not commit staged changes."
> + }
> fiFeels obviously correct from a cursory look, although I admit I haven't thought about other possible corner cases that this additional reset may fire when it shouldn't. Dscho?
Show 9 quoted lines
> > require_clean_work_tree > -- > 1.6.0 > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html