From: Derrick Stolee Date: Sun, 30 Nov 2025 20:00:30 GMT Subject: Re: [PATCH] last-modified: support sparse checkouts Message-ID: <75f862a5-2663-4211-b96c-d2c5d1c6f91e@gmail.com> In-Reply-To: On 11/29/2025 8:43 AM, Johannes Schindelin via GitGitGadget wrote: > From: Johannes Schindelin > > In a sparse checkout, a user might want to run `last-modified` on a > directory outside the worktree. > > And even in non-sparse checkouts, a user might need to run that command > on a directory that does not exist in the worktree. > > These use cases should be supported via the `--` separator between > revision and file arguments, which is even advertised in the > documentation. This patch fixes a tiny bug that prevents that from > working. > argc = parse_options(argc, argv, prefix, last_modified_options, > last_modified_usage, > - PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_KEEP_UNKNOWN_OPT); > + PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_KEEP_UNKNOWN_OPT | > + PARSE_OPT_KEEP_DASHDASH); I'm intrigued that this is the only fix that was required. > +test_expect_success 'last-modified in sparse checkout' ' > + test_when_finished "git sparse-checkout disable" && > + git sparse-checkout set b && > + check_last_modified -- a <<-\EOF Would we expect this to work without the '--'? Should it fail for a directory that exists at HEAD but is outside of the sparse-checkout? Thanks, -Stolee