]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ds/path-walk-2'
authorJunio C Hamano <gitster@pobox.com>
Tue, 17 Jun 2025 17:44:38 +0000 (10:44 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Jun 2025 17:44:38 +0000 (10:44 -0700)
"git pack-objects" learns to find delta bases from blobs at the
same path, using the --path-walk API.

* ds/path-walk-2:
  pack-objects: allow --shallow and --path-walk
  path-walk: add new 'edge_aggressive' option
  pack-objects: thread the path-based compression
  pack-objects: refactor path-walk delta phase
  scalar: enable path-walk during push via config
  pack-objects: enable --path-walk via config
  repack: add --path-walk option
  t5538: add tests to confirm deltas in shallow pushes
  pack-objects: introduce GIT_TEST_PACK_PATH_WALK
  p5313: add performance tests for --path-walk
  pack-objects: update usage to match docs
  pack-objects: add --path-walk option
  pack-objects: extract should_attempt_deltas()

14 files changed:
1  2 
Documentation/git-repack.adoc
builtin/pack-objects.c
builtin/repack.c
pack-objects.h
repo-settings.c
repo-settings.h
scalar.c
t/README
t/perf/p5313-pack-objects.sh
t/t5300-pack-object.sh
t/t5310-pack-bitmaps.sh
t/t5316-pack-delta-depth.sh
t/t5516-fetch-push.sh
t/t6601-path-walk.sh

Simple merge
index 8b33edc2ff525a4f28ddb6ff8f421ffab42416f7,a87546530632c02b3ca4c7f77913ef39e444e68e..67941c8a603ae4775bca5835667b77c9c5f1aba1
@@@ -183,9 -187,15 +187,15 @@@ static inline void oe_set_delta_size(st
  #define SET_DELTA_CHILD(obj, val) oe_set_delta_child(&to_pack, obj, val)
  #define SET_DELTA_SIBLING(obj, val) oe_set_delta_sibling(&to_pack, obj, val)
  
 -static const char *pack_usage[] = {
 +static const char *const pack_usage[] = {
-       N_("git pack-objects --stdout [<options>] [< <ref-list> | < <object-list>]"),
-       N_("git pack-objects [<options>] <base-name> [< <ref-list> | < <object-list>]"),
+       N_("git pack-objects [-q | --progress | --all-progress] [--all-progress-implied]\n"
+          "                 [--no-reuse-delta] [--delta-base-offset] [--non-empty]\n"
+          "                 [--local] [--incremental] [--window=<n>] [--depth=<n>]\n"
+          "                 [--revs [--unpacked | --all]] [--keep-pack=<pack-name>]\n"
+          "                 [--cruft] [--cruft-expiration=<time>]\n"
+          "                 [--stdout [--filter=<filter-spec>] | <base-name>]\n"
+          "                 [--shallow] [--keep-true-parents] [--[no-]sparse]\n"
+          "                 [--name-hash-version=<n>] [--path-walk] < <object-list>"),
        NULL
  };
  
Simple merge
diff --cc pack-objects.h
Simple merge
diff --cc repo-settings.c
Simple merge
diff --cc repo-settings.h
Simple merge
diff --cc scalar.c
Simple merge
diff --cc t/README
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge