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

[PATCH v3 7/9] pack-objects: introduce pack.allowPackReuse

From
Christian Couder <christian.couder@gmail.com>
Date
Nov 15, 2019, 14:15 UTC
Message-ID
<20191115141541.11149-8-chriscool@tuxfamily.org>
In-Reply-To
<20191115141541.11149-1-chriscool@tuxfamily.org>
From: Jeff King <peff@peff.net>
Let's make it possible to configure if we want pack reuse or not.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 Documentation/config/pack.txt | 4 ++++
 builtin/pack-objects.c        | 8 +++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/Documentation/config/pack.txt b/Documentation/config/pack.txt
index 1d66f0c992..58323a351f 100644
--- a/Documentation/config/pack.txt
+++ b/Documentation/config/pack.txt
@@ -27,6 +27,10 @@ Note that changing the compression level will not automatically recompress
 all existing objects. You can force recompression by passing the -F option
 to linkgit:git-repack[1].
 
+pack.allowPackReuse::
+	When true, which is the default, Git will try to reuse parts
+	of existing packfiles when preparing new packfiles.
+
 pack.island::
 	An extended regular expression configuring a set of delta
 	islands. See "DELTA ISLANDS" in linkgit:git-pack-objects[1]
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index f2c2703090..4fcfcf6097 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -96,6 +96,7 @@ static off_t reuse_packfile_offset;
 
 static int use_bitmap_index_default = 1;
 static int use_bitmap_index = -1;
+static int allow_pack_reuse = 1;
 static enum {
 	WRITE_BITMAP_FALSE = 0,
 	WRITE_BITMAP_QUIET,
@@ -2699,6 +2700,10 @@ static int git_pack_config(const char *k, const char *v, void *cb)
 		use_bitmap_index_default = git_config_bool(k, v);
 		return 0;
 	}
+	if (!strcmp(k, "pack.allowpackreuse")) {
+		allow_pack_reuse = git_config_bool(k, v);
+		return 0;
+	}
 	if (!strcmp(k, "pack.threads")) {
 		delta_search_threads = git_config_int(k, v);
 		if (delta_search_threads < 0)
@@ -3030,7 +3035,8 @@ static void loosen_unused_packed_objects(void)
  */
 static int pack_options_allow_reuse(void)
 {
-	return pack_to_stdout &&
+	return allow_pack_reuse &&
+	       pack_to_stdout &&
 	       allow_ofs_delta &&
 	       !ignore_packed_keep_on_disk &&
 	       !ignore_packed_keep_in_core &&
-- 
2.24.0-rc1
Previous: Christian CouderNext: Jeff King
Message 19 of 42 in “Rewrite packfile reuse code”
  1. 0/9 Rewrite packfile reuse codeChristian Couder, Nov 15, 2019
  2. 1/9 builtin/pack-objects: report reused packfile objectsChristian Couder, Nov 15, 2019
  3. Jeff KingDec 9, 2019
  4. Christian CouderDec 11, 2019
  5. 2/9 packfile: expose get_delta_base()Christian Couder, Nov 15, 2019
  6. Jeff KingDec 9, 2019
  7. 3/9 ewah/bitmap: introduce bitmap_word_alloc()Christian Couder, Nov 15, 2019
  8. Jeff KingDec 9, 2019
  9. Christian CouderDec 11, 2019
  10. Jeff KingDec 12, 2019
  11. 5/9 pack-bitmap: introduce bitmap_walk_contains()Christian Couder, Nov 15, 2019
  12. Jeff KingDec 9, 2019
  13. Christian CouderDec 13, 2019
  14. 6/9 csum-file: introduce hashfile_total()Christian Couder, Nov 15, 2019
  15. Jeff KingDec 9, 2019
  16. 4/9 pack-bitmap: don't rely on bitmap_git->reuse_objectsChristian Couder, Nov 15, 2019
  17. Jeff KingDec 9, 2019
  18. Christian CouderDec 13, 2019
  19. 7/9 pack-objects: introduce pack.allowPackReuseChristian Couder, Nov 15, 2019
  20. Jeff KingDec 9, 2019
  21. Christian CouderDec 13, 2019
  22. 8/9 builtin/pack-objects: introduce obj_is_packed()Christian Couder, Nov 15, 2019
  23. Jeff KingDec 9, 2019
  24. 9/9 pack-objects: improve partial packfile reuseChristian Couder, Nov 15, 2019
  25. Jeff KingDec 9, 2019
  26. Christian CouderDec 18, 2019
  27. Jeff KingDec 19, 2019
  28. Christian CouderJan 23, 2020
  29. Jonathan TanNov 15, 2019
  30. Junio C HamanoNov 25, 2019
  31. Junio C HamanoNov 25, 2019
  32. Junio C HamanoDec 6, 2019
  33. Christian CouderDec 7, 2019
  34. Johannes SchindelinDec 7, 2019
  35. Christian CouderDec 8, 2019
  36. Johannes SchindelinDec 8, 2019
  37. Christian CouderDec 8, 2019
  38. Johannes SchindelinDec 8, 2019
  39. Jeff KingDec 9, 2019
  40. Johannes SchindelinDec 9, 2019
  41. Junio C HamanoDec 9, 2019
  42. Junio C HamanoDec 9, 2019

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.