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

[PATCH 1/4] fetch: release pack files before garbage-collecting

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jan 13, 2016, 17:20 UTC
Message-ID
<4fd3f0c6d02ec33a832b6c1688e9f348825d074e.1452705584.git.johannes.schindelin@gmx.de>
In-Reply-To
<cover.1452705584.git.johannes.schindelin@gmx.de>

Before auto-gc'ing, we need to make sure that the pack files are released in case they need to be repacked and garbage-collected.

This fixes https://github.com/git-for-windows/git/issues/500
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 builtin/fetch.c  |  2 ++
 t/t5510-fetch.sh | 13 +++++++++++++
 2 files changed, 15 insertions(+)
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 33f04c1..8e74213 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -1225,6 +1225,8 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
 	list.strdup_strings = 1;
 	string_list_clear(&list, 0);
 
+	close_all_packs();
+
 	argv_array_pushl(&argv_gc_auto, "gc", "--auto", NULL);
 	if (verbosity < 0)
 		argv_array_push(&argv_gc_auto, "--quiet");
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
index 0ba9db0..e3ee4bd 100755
--- a/t/t5510-fetch.sh
+++ b/t/t5510-fetch.sh
@@ -708,4 +708,17 @@ test_expect_success 'fetching a one-level ref works' '
 	)
 '
 
+test_expect_success 'fetching with auto-gc does not lock up' '
+	write_script askyesno <<-\EOF &&
+	echo "$*" &&
+	false
+	EOF
+	git clone "file://$D" auto-gc &&
+	test_commit test2 &&
+	cd auto-gc &&
+	git config gc.autoPackLimit 1 &&
+	GIT_ASK_YESNO="$D/askyesno" git fetch >fetch.out 2>&1 &&
+	! grep "Should I try again" fetch.out
+'
+
 test_done
-- 
2.6.3.windows.1.300.g1c25e49
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 2 of 7 in “Always release pack files before calling gc --auto”
  1. 0/4 Always release pack files before calling gc --autoJohannes Schindelin, Jan 13, 2016
  2. 1/4 fetch: release pack files before garbage-collectingJohannes Schindelin, Jan 13, 2016
  3. 2/4 am: release pack files before garbage-collectingJohannes Schindelin, Jan 13, 2016
  4. 3/4 merge: release pack files before garbage-collectingJohannes Schindelin, Jan 13, 2016
  5. 4/4 receive-pack: release pack files before garbage-collectingJohannes Schindelin, Jan 13, 2016
  6. Jeff KingJan 13, 2016
  7. Johannes SchindelinJan 13, 2016

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.