Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Couder <chriscool@tuxfamily.org>2021-06-10 20:21:14 +0300
committerChristian Couder <chriscool@tuxfamily.org>2021-06-10 20:35:42 +0300
commit4f8f8cef14eccc7df9ee5634a2aeb8b5999e2088 (patch)
treeceefaa663a33b5340326b63d2b5385d71f2253fd
parent56c571a6bf20894de96f4739cfe17ede1befc8a2 (diff)
git-patches: Remove leftover patch
Commit 8d4884c01 (Makefile: Upgrade Git to v2.32.0, 2021-06-09) removed usage of patch pack-bitmap-avoid-traversal-of-uninteresting-tag.patch in the build, but forgot to remove the patch itself. Let's do this now.
-rw-r--r--_support/git-patches/pack-bitmap-avoid-traversal-of-uninteresting-tag.patch102
1 files changed, 0 insertions, 102 deletions
diff --git a/_support/git-patches/pack-bitmap-avoid-traversal-of-uninteresting-tag.patch b/_support/git-patches/pack-bitmap-avoid-traversal-of-uninteresting-tag.patch
deleted file mode 100644
index 03ab856ef..000000000
--- a/_support/git-patches/pack-bitmap-avoid-traversal-of-uninteresting-tag.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-commit 540cdc11adf0574a9a2d52fc687a84a2f4a93ad8
-Author: Patrick Steinhardt <ps@pks.im>
-Date: Mon Mar 22 13:19:06 2021 +0100
-
- pack-bitmap: avoid traversal of objects referenced by uninteresting tag
-
- When preparing the bitmap walk, we first establish the set of of have
- and want objects by iterating over the set of pending objects: if an
- object is marked as uninteresting, it's declared as an object we already
- have, otherwise as an object we want. These two sets are then used to
- compute which transitively referenced objects we need to obtain.
-
- One special case here are tag objects: when a tag is requested, we
- resolve it to its first not-tag object and add both resolved objects as
- well as the tag itself into either the have or want set. Given that the
- uninteresting-property always propagates to referenced objects, it is
- clear that if the tag is uninteresting, so are its children and vice
- versa. But we fail to propagate the flag, which effectively means that
- referenced objects will always be interesting except for the case where
- they have already been marked as uninteresting explicitly.
-
- This mislabeling does not impact correctness: we now have it in our
- "wants" set, and given that we later do an `AND NOT` of the bitmaps of
- "wants" and "haves" sets it is clear that the result must be the same.
- But we now start to needlessly traverse the tag's referenced objects in
- case it is uninteresting, even though we know that each referenced
- object will be uninteresting anyway. In the worst case, this can lead to
- a complete graph walk just to establish that we do not care for any
- object.
-
- Fix the issue by propagating the `UNINTERESTING` flag to pointees of tag
- objects and add a benchmark with negative revisions to p5310. This shows
- some nice performance benefits, tested with linux.git:
-
- Test HEAD~ HEAD
- ---------------------------------------------------------------------------------------------------------------
- 5310.3: repack to disk 193.18(181.46+16.42) 194.61(183.41+15.83) +0.7%
- 5310.4: simulated clone 25.93(24.88+1.05) 25.81(24.73+1.08) -0.5%
- 5310.5: simulated fetch 2.64(5.30+0.69) 2.59(5.16+0.65) -1.9%
- 5310.6: pack to file (bitmap) 58.75(57.56+6.30) 58.29(57.61+5.73) -0.8%
- 5310.7: rev-list (commits) 1.45(1.18+0.26) 1.46(1.22+0.24) +0.7%
- 5310.8: rev-list (objects) 15.35(14.22+1.13) 15.30(14.23+1.07) -0.3%
- 5310.9: rev-list with tag negated via --not --all (objects) 22.49(20.93+1.56) 0.11(0.09+0.01) -99.5%
- 5310.10: rev-list with negative tag (objects) 0.61(0.44+0.16) 0.51(0.35+0.16) -16.4%
- 5310.11: rev-list count with blob:none 12.15(11.19+0.96) 12.18(11.19+0.99) +0.2%
- 5310.12: rev-list count with blob:limit=1k 17.77(15.71+2.06) 17.75(15.63+2.12) -0.1%
- 5310.13: rev-list count with tree:0 1.69(1.31+0.38) 1.68(1.28+0.39) -0.6%
- 5310.14: simulated partial clone 20.14(19.15+0.98) 19.98(18.93+1.05) -0.8%
- 5310.16: clone (partial bitmap) 12.78(13.89+1.07) 12.72(13.99+1.01) -0.5%
- 5310.17: pack to file (partial bitmap) 42.07(45.44+2.72) 41.44(44.66+2.80) -1.5%
- 5310.18: rev-list with tree filter (partial bitmap) 0.44(0.29+0.15) 0.46(0.32+0.14) +4.5%
-
- While most benchmarks are probably in the range of noise, the newly
- added 5310.9 and 5310.10 benchmarks consistenly perform better.
-
- Signed-off-by: Patrick Steinhardt <ps@pks.im>.
- Signed-off-by: Junio C Hamano <gitster@pobox.com>
-
-diff --git a/pack-bitmap.c b/pack-bitmap.c
-index 4077e731e8..2d3bc415da 100644
---- a/pack-bitmap.c
-+++ b/pack-bitmap.c
-@@ -969,6 +969,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
- object_list_insert(object, &wants);
-
- object = parse_object_or_die(get_tagged_oid(tag), NULL);
-+ object->flags |= (tag->object.flags & UNINTERESTING);
- }
-
- if (object->flags & UNINTERESTING)
-diff --git a/t/perf/p5310-pack-bitmaps.sh b/t/perf/p5310-pack-bitmaps.sh
-index b3e725f031..452be01056 100755
---- a/t/perf/p5310-pack-bitmaps.sh
-+++ b/t/perf/p5310-pack-bitmaps.sh
-@@ -15,6 +15,12 @@ test_expect_success 'setup bitmap config' '
- git config pack.writebitmaps true
- '
-
-+# we need to create the tag up front such that it is covered by the repack and
-+# thus by generated bitmaps.
-+test_expect_success 'create tags' '
-+ git tag --message="tag pointing to HEAD" perf-tag HEAD
-+'
-+
- test_perf 'repack to disk' '
- git repack -ad
- '
-@@ -43,6 +49,14 @@ test_perf 'rev-list (objects)' '
- git rev-list --all --use-bitmap-index --objects >/dev/null
- '
-
-+test_perf 'rev-list with tag negated via --not --all (objects)' '
-+ git rev-list perf-tag --not --all --use-bitmap-index --objects >/dev/null
-+'
-+
-+test_perf 'rev-list with negative tag (objects)' '
-+ git rev-list HEAD --not perf-tag --use-bitmap-index --objects >/dev/null
-+'
-+
- test_perf 'rev-list count with blob:none' '
- git rev-list --use-bitmap-index --count --objects --all \
- --filter=blob:none >/dev/null