From: Junio C Hamano Date: Thu, 23 Dec 2010 00:02:30 GMT Subject: Re: Possible bug in "git rebase" (non-interactive) with regards to post-rewrite Message-ID: <7vipyl4aqx.fsf@alter.siamese.dyndns.org> In-Reply-To: Mihai Rusu writes: > I have found a possible bug in Git. When running "git rebase" > (non-interactively, ie not "git rebase -i") on code that would > conflict on the last commit that is being rebased and if that last > commit is being skipped (git rebase --skip) then after the rebase is > done the "post-rewrite" hook is not called by "git rebase". If I get a > conflict and "git rebase --skip" any other commit or if I use "git > rebase -i" and "git rebase --skip" the last commit when it conflicts > then it calls post-rewrite just fine. Because this hook is normally > called only once, at the end of a non-aborted rebase the fact that > "git rebase" does not call it when the last commit conflicts and is > skipped means the script is not called at all for that rebase > operation thus breaking the code that depends on it. > > Please advise, thank you. Perhaps this? Totally untested... git-am.sh | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) diff --git a/git-am.sh b/git-am.sh index cf1f64b..6cdd591 100755 --- a/git-am.sh +++ b/git-am.sh @@ -577,13 +577,6 @@ then resume= fi -if test "$this" -gt "$last" -then - say Nothing to do. - rm -fr "$dotest" - exit -fi - while test "$this" -le "$last" do msgnum=`printf "%0${prec}d" $this`