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

[PATCH 16/17] pack-objects: disable pack size limit feature on pack v4

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Sep 21, 2013, 13:58 UTC
Message-ID
<1379771883-10278-17-git-send-email-pclouds@gmail.com>
In-Reply-To
<1379771883-10278-1-git-send-email-pclouds@gmail.com>

pack v4 format does not go along well with pack size limit feature. v4 requires to know the number of objects in the pack in advance in order to contruct various tables after pack header. When pack size is limited, we don't know this number until we write objects out and hit it. By then the only option we have is rewrite the pack and update the tables.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/pack-objects.c | 2 ++
 t/t5300-pack-object.sh | 8 ++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 01954cb..3fd761a 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -2804,6 +2804,8 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
 		warning("minimum pack size limit is 1 MiB");
 		pack_size_limit = 1024*1024;
 	}
+	if (pack_size_limit && pack_version >= 4)
+		die("pack size limiting is not supported with pack version 4");
 
 	if (!pack_to_stdout && thin)
 		die("--thin cannot be used to build an indexable pack.");
diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh
index 62fc997..831ab79 100755
--- a/t/t5300-pack-object.sh
+++ b/t/t5300-pack-object.sh
@@ -385,9 +385,9 @@ test_expect_success 'index-pack with --strict' '
 	)
 '
 
-test_expect_success 'honor pack.packSizeLimit' '
+test_expect_success 'honor pack.packSizeLimit (pack v2)' '
 	git config pack.packSizeLimit 3m &&
-	packname_10=$(git pack-objects test-10 <obj-list) &&
+	packname_10=$(git pack-objects --version=2 test-10 <obj-list) &&
 	test 2 = $(ls test-10-*.pack | wc -l)
 '
 
@@ -395,9 +395,9 @@ test_expect_success 'verify resulting packs' '
 	git verify-pack test-10-*.pack
 '
 
-test_expect_success 'tolerate packsizelimit smaller than biggest object' '
+test_expect_success 'tolerate packsizelimit smaller than biggest object (pack v2)' '
 	git config pack.packSizeLimit 1 &&
-	packname_11=$(git pack-objects test-11 <obj-list) &&
+	packname_11=$(git pack-objects --version=2 test-11 <obj-list) &&
 	test 5 = $(ls test-11-*.pack | wc -l)
 '
 
-- 
1.8.2.83.gc99314b
Previous: Nicolas PitreNext: Nguyễn Thái Ngọc Duy
Message 22 of 25 in “np/pack-v4 updates”
  1. 00/17 np/pack-v4 updatesNguyễn Thái Ngọc Duy, Sep 21, 2013
  2. 01/17 fixup! index-pack: record all delta bases in v4 (tree and ref-delta)Nguyễn Thái Ngọc Duy, Sep 21, 2013
  3. 02/17 fixup! packv4-parse.c: add tree offset cachingNguyễn Thái Ngọc Duy, Sep 21, 2013
  4. 03/17 fixup! pack-objects: support writing pack v4Nguyễn Thái Ngọc Duy, Sep 21, 2013
  5. 04/17 fixup! pack-objects: recognize v4 as pack sourceNguyễn Thái Ngọc Duy, Sep 21, 2013
  6. 05/17 fixup! index-pack: support completing thin packs v4Nguyễn Thái Ngọc Duy, Sep 21, 2013
  7. 06/17 fixup! pack v4: move packv4-create.c to libgit.aNguyễn Thái Ngọc Duy, Sep 21, 2013
  8. 07/17 fixup! index-pack, pack-objects: allow creating .idx v2 with .pack v4Nguyễn Thái Ngọc Duy, Sep 21, 2013
  9. Nicolas PitreSep 22, 2013
  10. 08/17 fixup! pack v4: code to obtain a SHA1 from a sha1refNguyễn Thái Ngọc Duy, Sep 21, 2013
  11. 09/17 fixup! pack-objects: add --version to specify written pack versionNguyễn Thái Ngọc Duy, Sep 21, 2013
  12. 10/17 test-lib.sh: add --packv4 for running the tests with pack v4 as defaultNguyễn Thái Ngọc Duy, Sep 21, 2013
  13. 11/17 packv4-parse: accept ref-delta as base of pv4-treeNguyễn Thái Ngọc Duy, Sep 21, 2013
  14. 12/17 pack-objects: do not add type OBJ_NONE to objects[] in pack v4Nguyễn Thái Ngọc Duy, Sep 21, 2013
  15. 13/17 index-pack: encode appended trees using v4 format in pack v4Nguyễn Thái Ngọc Duy, Sep 21, 2013
  16. 14/17 t5302: disable sealth corruption tests when run with --packv4Nguyễn Thái Ngọc Duy, Sep 21, 2013
  17. Eric SunshineSep 22, 2013
  18. 15/17 t5300: avoid testing ofs-delta with --packv4Nguyễn Thái Ngọc Duy, Sep 21, 2013
  19. Nicolas PitreSep 21, 2013
  20. Duy NguyenSep 22, 2013
  21. Nicolas PitreSep 22, 2013
  22. 16/17 pack-objects: disable pack size limit feature on pack v4Nguyễn Thái Ngọc Duy, Sep 21, 2013
  23. 17/17 t5303: adapt the tests to run with --packv4Nguyễn Thái Ngọc Duy, Sep 21, 2013
  24. Nicolas PitreSep 21, 2013
  25. Junio C HamanoOct 15, 2013

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.