Re: [PATCH 03/11] reset_head(): don't run checkout hook if there is an error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Junio

On 01/10/2021 21:52, Junio C Hamano wrote:
"Phillip Wood via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes:

From: Phillip Wood <phillip.wood@xxxxxxxxxxxxx>

The hook should only be run if the worktree and refs were successfully
updated.

OK.  This is a behaviour change visible to end-users, and deserves a
mention in the release notes.

  - When "git rebase" attempted to check out a branch (or detached

It only affects "git rebase --apply" as the "merge" backend forks "git checkout" which does not run the hook if it cannot update the worktree or refs.

    the HEAD) to work on, we used to always call the "post-checkout"
    hook, even if the checkout failed to update the ref.  The hook is
    no longer called if the checkout fails.

or something.

Again, can the bug this step fixes be protected with a new test in
t/ please?

I'll try and come up with something - it should be possible to arrange an untracked file to make unpack_trees() to fail, I'm not sure how we'd make update_ref() fail

Best Wishes

Phillip


Signed-off-by: Phillip Wood <phillip.wood@xxxxxxxxxxxxx>
---
  reset.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/reset.c b/reset.c
index fc4dae3fd2d..5abb1a5683e 100644
--- a/reset.c
+++ b/reset.c
@@ -125,7 +125,7 @@ reset_head_refs:
  			ret = create_symref("HEAD", switch_to_branch,
  					    reflog_head);
  	}
-	if (run_hook)
+	if (!ret && run_hook)
  		run_hook_le(NULL, "post-checkout",
  			    oid_to_hex(orig ? orig : null_oid()),
  			    oid_to_hex(oid), "1", NULL);



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux