From: Shawn O. Pearce Date: Wed, 7 Mar 2007 21:50:43 +0000 (-0500) Subject: Don't run post-update hook unless a ref changed X-Git-Tag: v1.5.1-rc1~73 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3e6e152c7496c1acd298ec2b916d62acb56f11c0;p=git.git Don't run post-update hook unless a ref changed There is little point in executing the post-update hook if all refs had an error and were unable to be updated. In this case nothing new is reachable within the repository, and there is no state change for the post-update hook to be interested in. Signed-off-by: Shawn O. Pearce Signed-off-by: Junio C Hamano --- diff --git a/receive-pack.c b/receive-pack.c index d39aebac1..e32e301d4 100644 --- a/receive-pack.c +++ b/receive-pack.c @@ -175,14 +175,14 @@ static void run_update_post_hook(struct command *cmd) int argc; const char **argv; - if (access(update_post_hook, X_OK) < 0) - return; - for (argc = 1, cmd_p = cmd; cmd_p; cmd_p = cmd_p->next) { + for (argc = 0, cmd_p = cmd; cmd_p; cmd_p = cmd_p->next) { if (cmd_p->error_string) continue; argc++; } - argv = xmalloc(sizeof(*argv) * (1 + argc)); + if (!argc || access(update_post_hook, X_OK) < 0) + return; + argv = xmalloc(sizeof(*argv) * (2 + argc)); argv[0] = update_post_hook; for (argc = 1, cmd_p = cmd; cmd_p; cmd_p = cmd_p->next) {