]> git.99rst.org Git - git.git/commit
revision: fix --no-walk path filtering regression
authorKristofer Karlsson <redacted>
Thu, 16 Jul 2026 10:47:58 +0000 (10:47 +0000)
committerJunio C Hamano <redacted>
Thu, 16 Jul 2026 17:53:38 +0000 (10:53 -0700)
commit32c4ed70e28f299bec9097db0609a1d954ffac54
tree43c4adf825b8e52b3eaa771e09aaa4bd1b2a99bb
parentbd2943265e6b8a2f148209e2243fc7e5726b0b19
revision: fix --no-walk path filtering regression

Since dd4bc01c0a (revision: use priority queue for non-limited
streaming walks, 2026-05-27), "git rev-list --no-walk <commit>
-- <path>" ignores the path arguments and outputs all commits
regardless of whether they touch the given paths.

That commit introduced a REV_WALK_NO_WALK enum value to separate
--no-walk from the streaming walk in get_revision_1(). The new
case skips process_parents(), which is correct for not enqueuing
parents, but also skips try_to_simplify_commit() which
process_parents() calls to evaluate whether each commit touches
the given paths.

Add a call to try_to_simplify_commit() for the
REV_WALK_NO_WALK case, folding it into the existing
REV_WALK_REFLOG case which already does the same.

Add tests for --no-walk path filtering to t6017. The
"single commit, match" test is defensive and passes without
the fix, while the other two fail without it.

Reported-by: Peter Colberg <redacted>
Signed-off-by: Kristofer Karlsson <redacted>
Signed-off-by: Junio C Hamano <redacted>
revision.c
t/t6017-rev-list-stdin.sh
git clone https://git.99rst.org/PROJECT