[PATCH v3 0/1] rev-list: add --missing-only option to filter output
- From
Siddharth Asthana <siddharthasthana31@gmail.com>
- Date
- Sep 3, 2026, 20:45 UTC
- Message-ID
- <20260903204551.65592-1-siddharthasthana31@gmail.com>
- In-Reply-To
- <20260901185100.33948-1-siddharthasthana31@gmail.com>
Hi,
v2 added --missing-only as a filter next to --missing=print / --missing=print-info. Junio asked how the missing list is used, so this v3 only updates the log message.
It is a one-shot walk. Gitaly uses --missing=print when packing a quarantine and treats '?' lines as objects that must already be in the main repo. Tests do the same (is this blob still missing). --missing-only is that list without the prefix, not a fetch loop.
Based on 1630431f32 (The 21st batch, 2026-08-31).
Changes from v2: - Stronger motivation in the commit message (Junio). - Link to v2: https://lore.kernel.org/git/20260901185100.33948-1-siddharthasthana31@gmail.com/
Thanks, Siddharth
--- Siddharth Asthana (1): rev-list: add --missing-only option to filter output
Documentation/rev-list-options.adoc | 13 ++++++++ builtin/rev-list.c | 42 ++++++++++++++++++++++--- t/t6022-rev-list-missing.sh | 49 +++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+), 5 deletions(-)
Range-diff versus v2:
1: 3c89e6bc38 ! 1: c751ff41a4 rev-list: add --missing-only option to filter output
@@ Commit message
git rev-list --objects --all --missing=print | perl -ne 'print if s/^[?]//'
+ This is for a one-shot walk, not a fetch loop. Callers already have
+ --missing=print and strip the leading '?'. Gitaly does that when packing
+ a quarantine: '?' lines are objects that must already exist in the main
+ repo. Tests do the same (is this blob still missing). --missing-only is
+ just that list without the prefix.
+
Add --missing-only. Use it with --missing=print or --missing=print-info
to print only missing objects. --missing= still picks the format;
--missing-only only filters. The leading '?' is omitted. Withbase-commit: 1630431f326e15fcde608827b5ff38422528eb59