threads / discuss / 29506

rebase -i reword converts to pick on pre-commit non-zero exit

Subject: rebase -i reword converts to pick on pre-commit non-zero exit

## tl;dr

4 messages between Feb 1, 2012 and Feb 2, 2012.

replies: 3people: 3as markdown or json

Neal Kreitzinger· Feb 1, 2012, 21:27 UTC · lore

When interactive rebase does the reword command it runs the pre-commit hook for that commit (a). If the pre-commit hook gives a non-zero exit then interactive rebase picks commit (a) and continues to the next commit (b) in the rebase-to-do-list. Instead of picking commit (a) when the pre-commit hook exits non-zero on the reword command, shouldn't interactive rebase learn to edit commit (a) and tell the user that because the pre-commit hook exited non-zero they need to either remedy the pre-commit hook violations and run git commit --amend or run git commit --amend --no-verify to bypass the pre-commit hook? Otherwise, you have to run another rebase after the rejected rewords and edit those commits to accomplish the rewords.

v/r, neal

Neal Kreitzinger· Feb 1, 2012, 21:28 UTC · re: Neal Kreitzinger · lore

Re: rebase -i reword converts to pick on pre-commit non-zero exit

On 2/1/2012 3:27 PM, Neal Kreitzinger wrote:
Show 11 quoted lines
> When interactive rebase does the reword command it runs the pre-commit hook
> for that commit (a).  If the pre-commit hook gives a non-zero exit then
> interactive rebase picks commit (a) and continues to the next commit (b) in
> the rebase-to-do-list.  Instead of picking commit (a) when the pre-commit
> hook exits non-zero on the reword command, shouldn't interactive rebase
> learn to edit commit (a) and tell the user that because the pre-commit hook
> exited non-zero they need to either remedy the pre-commit hook violations
> and run git commit --amend or run git commit --amend --no-verify to bypass
> the pre-commit hook?  Otherwise, you have to run another rebase after the
> rejected rewords and edit those commits to accomplish the rewords.
>
git 1.7.1

v/r, neal

Andrew Wong· Feb 2, 2012, 04:12 UTC · re: Neal Kreitzinger · lore

Re: rebase -i reword converts to pick on pre-commit non-zero exit

On 12-02-01 4:28 PM, Neal Kreitzinger wrote:
Show 8 quoted lines
> Instead of picking commit (a) when the pre-commit
> hook exits non-zero on the reword command, shouldn't interactive rebase
> learn to edit commit (a) and tell the user that because the pre-commit 
> hook
> exited non-zero they need to either remedy the pre-commit hook violations
> and run git commit --amend or run git commit --amend --no-verify to 
> bypass
> the pre-commit hook?

Yup, I've submitted a patch to address this issue a while ago. This new behavior should be in v.1.7.8.2 and later.

Neal Kreitzinger· Feb 2, 2012, 16:21 UTC · re: Andrew Wong · lore

Re: rebase -i reword converts to pick on pre-commit non-zero exit

On 2/1/2012 10:12 PM, Andrew Wong wrote:
Show 10 quoted lines
> On 12-02-01 4:28 PM, Neal Kreitzinger wrote:
>> Instead of picking commit (a) when the pre-commit hook exits
>> non-zero on the reword command, shouldn't interactive rebase learn
>> to edit commit (a) and tell the user that because the pre-commit
>> hook exited non-zero they need to either remedy the pre-commit hook
>> violations and run git commit --amend or run git commit --amend
>> --no-verify to bypass the pre-commit hook?
>
> Yup, I've submitted a patch to address this issue a while ago. This
> new behavior should be in v.1.7.8.2 and later.
I now see that this 1.7.8.2 release note applies:
  * When a "reword" action in "git rebase -i" failed to run "commit 
--amend",
    we did not give the control back to the user to resolve the
situation, and
    instead kept the original commit log message.
thanks!

v/r, neal

← back to recent threads