From: Junio C Hamano Date: Mon, 12 Nov 2007 19:51:54 GMT Subject: Re: [PATCH 2/3] Implement --dirty for git-rebase--interactive. Message-ID: <7vpryf2qed.fsf@gitster.siamese.dyndns.org> In-Reply-To: <1193952624-608-3-git-send-email-Simon.Sasburg@gmail.com> Simon Sasburg writes: > +restore_dirty_state () { > + lastmsg=$(git-rev-list HEAD^..HEAD --pretty=oneline | sed "s:[^ ]* ::") > + if test "$lastmsg" = "REBASE--dirty: store index..workingtree diff" > + then > + echo "Restoring dirty index state" > + git reset --mixed HEAD^ > + fi > + lastmsg=$(git-rev-list HEAD^..HEAD --pretty=oneline | sed "s:[^ ]* ::") > + if test "$lastmsg" = "REBASE--dirty: store HEAD..index diff" > + then > + echo "Restoring dirty working dir state" > + git reset --soft HEAD^ > + fi > +} This forces the user to pay the two rev-list overhead, even when running rebase without --dirty option. Can we avoid paying any, when not giving the option? Also it pollutes the reflog of the branch, but that won't be a huge issue with Dscho's "detach HEAD while rebasing" patch.