git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/4] git-gc --auto: add pre-auto-gc hook

From
Miklos Vajna <vmiklos@frugalware.org>
Date
Mar 31, 2008, 09:35 UTC
Message-ID
<7637ee64f43964d2e514c1598b2e7783d71b8608.1206929014.git.vmiklos@frugalware.org>
In-Reply-To
<alpine.LFD.1.00.0803301645020.14670@woody.linux-foundation.org>

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
Previous: Miklos VajnaNext: Miklos Vajna
Message 17 of 27 in “git gc --auto: defer on battery”
  1. git gc --auto: defer on batteryMiklos Vajna, Mar 30, 2008
  2. Björn SteinbrinkMar 30, 2008
  3. git gc --auto: defer on batteryMiklos Vajna, Mar 30, 2008
  4. Björn SteinbrinkMar 30, 2008
  5. Linus TorvaldsMar 30, 2008
  6. Björn SteinbrinkMar 31, 2008
  7. Junio C HamanoMar 31, 2008
  8. Linus TorvaldsMar 31, 2008
  9. Björn SteinbrinkMar 31, 2008
  10. fetchmail (Re: [PATCH] git gc --auto: defer on battery)Linus Torvalds, Mar 31, 2008
  11. commit: resurrect "gc --auto" at the endJohannes Schindelin, Apr 2, 2008
  12. Johannes SchindelinMay 14, 2008
  13. Junio C HamanoMay 14, 2008
  14. Johannes SchindelinMay 14, 2008
  15. Holger SchurigMay 15, 2008
  16. 0/4 add pre-auto-gc hook for git-gc --autoMiklos Vajna, Mar 31, 2008
  17. 1/4 git-gc --auto: add pre-auto-gc hookMiklos Vajna, Mar 31, 2008
  18. 2/4 git-gc: add a --no-verify option to bypass the pre-auto-gc hookMiklos Vajna, Mar 31, 2008
  19. 3/4 Documentation/hooks: add pre-auto-gc hookMiklos Vajna, Mar 31, 2008
  20. 4/4 templates: add an example pre-auto-gc hookMiklos Vajna, Mar 31, 2008
  21. Brian GernhardtMar 31, 2008
  22. Joey HessMar 31, 2008
  23. Johannes SchindelinMar 30, 2008
  24. Miklos VajnaMar 30, 2008
  25. Brandon CaseyMar 31, 2008
  26. Miklos VajnaMar 31, 2008
  27. Brandon CaseyMar 31, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.