git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] ls-files: document that pathspecs are supported

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 11, 2023, 20:33 UTC
Message-ID
<xmqqzg8jxc2r.fsf@gitster.g>
In-Reply-To
<pull.1466.git.git.1678526355280.gitgitgadget@gmail.com>
"Adam Johnson via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: Adam Johnson <me@adamj.eu>
>
> The command has taken pathspecs, not just filenames, since f0096c06bcd
> (Convert read_tree{,_recursive} to support struct pathspec, 2011-03-25).

Isn't that commit about ls-tree? The commit does change how the tree overlay (i.e. the --with-tree=<tree-ish> option) interacts with the given pathspec arguments but that is only because that commit changes how read_tree_recursive() has to be called. The support of pathspec matching in ls-files dates back to 56fc5108 ([PATCH] git-ls-files: generalized pathspecs, 2005-08-21), arguably even before the commit "generalized" the already existing path pattern match feature.

Show 10 quoted lines
> diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
> index 1abdd3c21c5..2f62374062c 100644
> --- a/Documentation/git-ls-files.txt
> +++ b/Documentation/git-ls-files.txt
> @@ -21,7 +21,7 @@ SYNOPSIS
>  		[--exclude-standard]
>  		[--error-unmatch] [--with-tree=<tree-ish>]
>  		[--full-name] [--recurse-submodules]
> -		[--abbrev[=<n>]] [--format=<format>] [--] [<file>...]
> +		[--abbrev[=<n>]] [--format=<format>] [--] [<pathspec>...]
Good.
Show 9 quoted lines
>  DESCRIPTION
>  -----------
> @@ -127,12 +127,12 @@ OPTIONS
>  	in each directory, and the user's global exclusion file.
>  
>  --error-unmatch::
> -	If any <file> does not appear in the index, treat this as an
> +	If any <pathspec> does not appear in the index, treat this as an
>  	error (return 1).

This is no longer correct. "If no path that matches <pathspec> appears in the index". When we are given <pathspec>, say '*.txt', a path whose string is literally '*.txt' may not appear in the index, but as long as there is a path that matches the pattern exists, this option does not lead to an error.

> -<file>::
> +<pathspec>::
>  	Files to show. If no files are given all files which match the other

The description also needs to be updated. "Limits the files to show to only those that match the given pathspec" or something along that line.

Thanks.
Previous: Adam Johnson via GitGitGadgetNext: Adam Johnson
Message 2 of 4 in “ls-files: document that pathspecs are supported”
  1. ls-files: document that pathspecs are supportedAdam Johnson via GitGitGadget, Mar 11, 2023
  2. Junio C HamanoMar 11, 2023
  3. Adam JohnsonMar 12, 2023
  4. ls-files: document that pathspecs are supportedAdam Johnson via GitGitGadget, Mar 12, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.