@@ -369,6 +369,7 @@ static void add_var(struct strbuf *buf, const char *name, const char *value)
369369#define RESET_HEAD_DETACH (1<<0)
370370#define RESET_HEAD_HARD (1<<1)
371371#define RESET_HEAD_REFS_ONLY (1<<2)
372+ #define RESET_HEAD_RUN_HOOK (1<<3)
372373
373374static int reset_head (struct object_id * oid , const char * action ,
374375 const char * switch_to_branch , unsigned flags ,
@@ -377,6 +378,7 @@ static int reset_head(struct object_id *oid, const char *action,
377378 unsigned detach_head = flags & RESET_HEAD_DETACH ;
378379 unsigned reset_hard = flags & RESET_HEAD_HARD ;
379380 unsigned refs_only = flags & RESET_HEAD_REFS_ONLY ;
381+ unsigned run_hook = flags & RESET_HEAD_RUN_HOOK ;
380382 struct object_id head_oid ;
381383 struct tree_desc desc [2 ] = { { NULL }, { NULL } };
382384 struct lock_file lock = LOCK_INIT ;
@@ -481,6 +483,10 @@ static int reset_head(struct object_id *oid, const char *action,
481483 ret = create_symref ("HEAD" , switch_to_branch ,
482484 reflog_head );
483485 }
486+ if (run_hook )
487+ run_hook_le (NULL , "post-checkout" ,
488+ oid_to_hex (orig ? orig : & null_oid ),
489+ oid_to_hex (oid ), "1" , NULL );
484490
485491leave_reset_head :
486492 strbuf_release (& msg );
@@ -1729,7 +1735,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
17291735 strbuf_addf (& msg , "%s: checkout %s" ,
17301736 getenv (GIT_REFLOG_ACTION_ENVIRONMENT ), options .onto_name );
17311737 if (reset_head (& options .onto -> object .oid , "checkout" , NULL ,
1732- RESET_HEAD_DETACH , NULL , msg .buf ))
1738+ RESET_HEAD_DETACH | RESET_HEAD_RUN_HOOK , NULL , msg .buf ))
17331739 die (_ ("Could not detach HEAD" ));
17341740 strbuf_release (& msg );
17351741
0 commit comments