threads / patch / 7142

patch, 5 partsDon't run post-update hook unless a ref changed

Subject: [PATCH 2/5] Don't run post-update hook unless a ref changed

## tl;dr

One message between Mar 7, 2007 and Mar 7, 2007. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Shawn O. Pearce· Mar 7, 2007, 21:50 UTC · lore

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 <spearce@spearce.org>
---
 receive-pack.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
Show changes to receive-pack.c +4 −4
diff --git a/receive-pack.c b/receive-pack.c
index d39aeba..e32e301 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) {
-- 
1.5.0.3.895.g09890

← back to recent threads