From: Kai Koponen Date: Mon, 02 Dec 2024 19:45:17 GMT Subject: Re: rev-list --ancestry-path with arg - bug or undocumented requirement Message-ID: In-Reply-To: From 447a2367f8d3318e69adccc1b011b0d04792e438 Mon Sep 17 00:00:00 2001 From: Kai Koponen Date: Mon, 2 Dec 2024 19:32:25 +0000 Subject: [PATCH] doc: mention rev-list --ancestry-path restrictions Signed-off-by: Kai Koponen --- Documentation/rev-list-options.txt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index 00ccf68744..1c678294af 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -412,12 +412,13 @@ Default mode:: --ancestry-path[=]:: When given a range of commits to display (e.g. 'commit1..commit2' - or 'commit2 {caret}commit1'), only display commits in that range - that are ancestors of , descendants of , or - itself. If no commit is specified, use 'commit1' (the - excluded part of the range) as . Can be passed multiple - times; if so, a commit is included if it is any of the commits - given or if it is an ancestor or descendant of one of them. + or 'commit2 {caret}commit1'), and a commit in that range, + only display commits in that range that are ancestors of , + descendants of , or itself. If no commit is + specified, use 'commit1' (the excluded part of the range) as + . Can be passed multiple times; if so, a commit is + included if it is any of the commits given or if it is an ancestor + or descendant of one of them. A more detailed explanation follows. -- 2.47.0.338.g60cca15819-goog On Tue, Nov 19, 2024 at 10:22 PM Elijah Newren wrote: > > On Tue, Nov 19, 2024 at 1:53 PM Kai Koponen wrote: > > > > What did you do before the bug happened? (Steps to reproduce your issue) > > Create a toy repo with commits in the following structure: > > A - B - C > > \ > > D > > > > Run `git rev-list --ancestry-path=D A..C`. > > > > What did you expect to happen? (Expected behavior) > > Commits A and B should be listed. > > > > What happened instead? (Actual behavior) > > No commits listed. > > > > What's different between what you expected and what actually happened? > > --ancestry-path with a commit arg seems to return 0 results unless the > > specified commit is itself part of the range. The rev-list documentation > > does not mention that this is a requirement. > > Yeah, the commit message that introduced --ancestry-path=COMMIT did > document this in its commit message (see > 257418c59040c13bfa839e01922e21833cda6a52257418c59040 (revision: allow > --ancestry-path to take an argument, 2022-08-19)), and I think my > original documentation patch was a little clearer on this point, but > when Jonathan suggested an alternative for the documentation > (https://lore.kernel.org/git/20220818222416.3567602-1-jonathantanmy@google.com/), > I didn't think about someone attempting a commit outside the > ancestry-path as the argument. My bad. > > Based on the references above, would you like to suggest a > documentation patch to ensure this requirement is documented?