[prev in list] [next in list] [prev in thread] [next in thread]
List: git
Subject: [PATCH 1/4] git-gc --auto: add pre-auto-gc hook
From: Miklos Vajna <vmiklos () frugalware ! org>
Date: 2008-03-31 9:35:46
Message-ID: 7637ee64f43964d2e514c1598b2e7783d71b8608.1206929014.git.vmiklos () frugalware ! org
[Download RAW message or body]
If such a hook is available and exits with a non-zero status, then
git-gc --auto won't run.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
builtin-gc.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/builtin-gc.c b/builtin-gc.c
index 8cef36f..acd63be 100644
--- a/builtin-gc.c
+++ b/builtin-gc.c
@@ -157,6 +157,25 @@ static int too_many_packs(void)
return gc_auto_pack_limit <= cnt;
}
+static int run_hook()
+{
+ const char *argv[2];
+ struct child_process hook;
+
+ argv[0] = git_path("hooks/pre-auto-gc");
+ argv[1] = NULL;
+
+ if (access(argv[0], X_OK) < 0)
+ return 0;
+
+ memset(&hook, 0, sizeof(hook));
+ hook.argv = argv;
+ hook.no_stdin = 1;
+ hook.stdout_to_stderr = 1;
+
+ return run_command(&hook);
+}
+
static int need_to_gc(void)
{
/*
@@ -176,6 +195,9 @@ static int need_to_gc(void)
append_option(argv_repack, "-A", MAX_ADD);
else if (!too_many_loose_objects())
return 0;
+
+ if (run_hook())
+ return 0;
return 1;
}
--
1.5.5.rc2.4.g283c6
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic