summaryrefslogtreecommitdiff
path: root/run-command.h
diff options
context:
space:
mode:
authorJosef Weidendorfer <Josef.Weidendorfer@gmx.de>2005-07-31 19:17:43 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-08-01 06:30:59 (GMT)
commitb1bf95bba26c8de1581f401dcab1f743bad7fc1d (patch)
tree08c71676e67172279e3ac13a76d3eafa20167d68 /run-command.h
parent9f6cf65e66c441d99f4838b6b74971d48c4efc72 (diff)
downloadgit-b1bf95bba26c8de1581f401dcab1f743bad7fc1d.zip
git-b1bf95bba26c8de1581f401dcab1f743bad7fc1d.tar.gz
git-b1bf95bba26c8de1581f401dcab1f743bad7fc1d.tar.bz2
[PATCH] Added hook in git-receive-pack
Just before updating a ref, $GIT_DIR/hooks/update refname old-sha1 new-sha1 is called if executable. The hook can decline the ref to be updated by exiting with a non-zero status, or allow it to be updated by exiting with a zero status. The mechanism also allows e.g sending of a mail with pushed commits on the remote repository. Documentation update with an example hook is included. jc: The credits of the basic idea and initial implementation go to Josef, but I ended up rewriting major parts of his patch, so bugs are all mine. Also I changed the semantics for the hook from his original version (which were post-update hook) so that the hook can optionally decline to update the ref, and also can be used to implement the overall cleanups. The latter was primarily to implement a suggestion from Linus that calling update-server-info should be made optional. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'run-command.h')
-rw-r--r--run-command.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/run-command.h b/run-command.h
new file mode 100644
index 0000000..4f64613
--- /dev/null
+++ b/run-command.h
@@ -0,0 +1,16 @@
+#ifndef RUN_COMMAND_H
+#define RUN_COMMAND_H
+
+#define MAX_RUN_COMMAND_ARGS 256
+enum {
+ ERR_RUN_COMMAND_FORK = 10000,
+ ERR_RUN_COMMAND_EXEC,
+ ERR_RUN_COMMAND_WAITPID,
+ ERR_RUN_COMMAND_WAITPID_WRONG_PID,
+ ERR_RUN_COMMAND_WAITPID_SIGNAL,
+ ERR_RUN_COMMAND_WAITPID_NOEXIT,
+};
+
+int run_command(const char *cmd, ...);
+
+#endif