From: Tamir Duberstein <tamird@gmail.com>
To: git@vger.kernel.org
Cc: Jeff King <peff@peff.net>, Karthik Nayak <karthik.188@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
Victoria Dye <vdye@github.com>,
Derrick Stolee <stolee@gmail.com>,
Elijah Newren <newren@gmail.com>,
Tamir Duberstein <tamird@gmail.com>
Subject: [PATCH v2 0/2] Reuse --contains traversal results
Date: Mon, 08 Jun 2026 19:36:33 -0700 [thread overview]
Message-ID: <20260608-ref-filter-memoized-contains-v2-0-e72720344a7c@gmail.com> (raw)
The memoized traversal used by git tag avoids repeating graph walks for
refs with shared history. Extend it to the other ref-filter users after
making the existing traversal safe for cycles introduced by replacement
refs.
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
---
Changes in v2:
- Split cycle handling into a preparatory patch.
- Exercise cycle handling through the existing git tag path.
- Move perf result verification out of setup.
- Link to v1: https://patch.msgid.link/20260607-ref-filter-memoized-contains-v1-1-a1972dde9c76@gmail.com
---
Tamir Duberstein (2):
commit-reach: handle cycles in contains walk
ref-filter: memoize --contains with generations
commit-reach.c | 43 ++++++++++++++++++++++++++++++------
commit-reach.h | 10 ++++++++-
t/perf/p1500-graph-walks.sh | 49 +++++++++++++++++++++++++++++++++++++++++-
t/t6301-for-each-ref-errors.sh | 22 +++++++++++++++++++
t/t7004-tag.sh | 21 ++++++++++++++++++
5 files changed, 137 insertions(+), 8 deletions(-)
---
base-commit: 9ac3f193c05c2237e2b14ebaa1149e9fc8a1abe0
change-id: 20260607-ref-filter-memoized-contains-7cb6b3bccad1
Best regards,
--
Tamir Duberstein <tamird@gmail.com>
next reply other threads:[~2026-06-09 2:36 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-09 2:36 Tamir Duberstein [this message]
2026-06-09 2:36 ` [PATCH v2 1/2] commit-reach: handle cycles in contains walk Tamir Duberstein
2026-06-11 7:29 ` Jeff King
2026-06-12 2:40 ` Tamir Duberstein
2026-06-09 2:36 ` [PATCH v2 2/2] ref-filter: memoize --contains with generations Tamir Duberstein
2026-06-10 11:47 ` Karthik Nayak
2026-06-10 12:20 ` Tamir Duberstein
2026-06-11 8:16 ` Karthik Nayak
2026-06-11 20:10 ` Tamir Duberstein
2026-06-11 8:22 ` Jeff King
2026-06-12 2:40 ` Tamir Duberstein
2026-06-12 3:00 ` [PATCH v3 0/3] Reuse --contains traversal results Tamir Duberstein
2026-06-12 3:00 ` [PATCH v3 1/3] commit-reach: handle cycles in contains walk Tamir Duberstein
2026-06-12 6:53 ` Kristofer Karlsson
2026-06-12 21:26 ` Tamir Duberstein
2026-06-12 3:00 ` [PATCH v3 2/3] ref-filter: memoize --contains with generations Tamir Duberstein
2026-06-12 3:00 ` [PATCH v3 3/3] commit-reach: die on contains walk errors Tamir Duberstein
2026-06-12 21:49 ` [PATCH v4 0/3] Reuse --contains traversal results Tamir Duberstein
2026-06-12 21:49 ` [PATCH v4 1/3] commit-reach: reject cycles in contains walk Tamir Duberstein
2026-06-12 21:49 ` [PATCH v4 2/3] ref-filter: memoize --contains with generations Tamir Duberstein
2026-06-12 21:49 ` [PATCH v4 3/3] commit-reach: die on contains walk errors Tamir Duberstein
2026-06-29 20:40 ` [PATCH v4 0/3] Reuse --contains traversal results Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260608-ref-filter-memoized-contains-v2-0-e72720344a7c@gmail.com \
--to=tamird@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=karthik.188@gmail.com \
--cc=newren@gmail.com \
--cc=peff@peff.net \
--cc=stolee@gmail.com \
--cc=vdye@github.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.