git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] ls-files: document that pathspecs are supported
@ 2023-03-11  9:19 Adam Johnson via GitGitGadget
  2023-03-11 20:33 ` Junio C Hamano
  2023-03-12 11:55 ` [PATCH v2] " Adam Johnson via GitGitGadget
  0 siblings, 2 replies; 4+ messages in thread
From: Adam Johnson via GitGitGadget @ 2023-03-11  9:19 UTC (permalink / raw)
  To: git; +Cc: Elijah Newren, Adam Johnson, Adam Johnson

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).

Signed-off-by: Adam Johnson <me@adamj.eu>
---
    ls-files: document that pathspecs are supported
    
    The command has taken pathspecs, not just filenames, since f0096c06bcd
    (Convert read_tree{,_recursive} to support struct pathspec, 2011-03-25).
    
    Signed-off-by: Adam Johnson me@adamj.eu

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1466%2Fadamchainz%2Fdoc-ls-files-pathspecs-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1466/adamchainz/doc-ls-files-pathspecs-v1
Pull-Request: https://github.com/git/git/pull/1466

 Documentation/git-ls-files.txt | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

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>...]
 
 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).
 
 --with-tree=<tree-ish>::
 	When using --error-unmatch to expand the user supplied
-	<file> (i.e. path pattern) arguments to paths, pretend
+	<pathspec> (i.e. path pattern) arguments to paths, pretend
 	that paths which were removed in the index since the
 	named <tree-ish> are still present.  Using this option
 	with `-s` or `-u` options does not make any sense.
@@ -225,9 +225,12 @@ followed by the  ("attr/<eolattr>").
 \--::
 	Do not interpret any more arguments as options.
 
-<file>::
+<pathspec>::
 	Files to show. If no files are given all files which match the other
 	specified criteria are shown.
++
+For details on the <pathspec> syntax, see the 'pathspec' entry in
+linkgit:gitglossary[7].
 
 OUTPUT
 ------

base-commit: 725f57037d81e24eacfda6e59a19c60c0b4c8062
-- 
gitgitgadget

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] ls-files: document that pathspecs are supported
  2023-03-11  9:19 [PATCH] ls-files: document that pathspecs are supported Adam Johnson via GitGitGadget
@ 2023-03-11 20:33 ` Junio C Hamano
  2023-03-12 11:52   ` Adam Johnson
  2023-03-12 11:55 ` [PATCH v2] " Adam Johnson via GitGitGadget
  1 sibling, 1 reply; 4+ messages in thread
From: Junio C Hamano @ 2023-03-11 20:33 UTC (permalink / raw)
  To: Adam Johnson via GitGitGadget; +Cc: git, Elijah Newren, Adam Johnson

"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.

> 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.

>  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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] ls-files: document that pathspecs are supported
  2023-03-11 20:33 ` Junio C Hamano
@ 2023-03-12 11:52   ` Adam Johnson
  0 siblings, 0 replies; 4+ messages in thread
From: Adam Johnson @ 2023-03-12 11:52 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Adam Johnson via GitGitGadget, git, Elijah Newren

Thank you Junio, that's very good review feedback. Thank you for
finding the correct past commit. I am submitting an updated patch now.


On Sat, Mar 11, 2023 at 8:33 PM Junio C Hamano <gitster@pobox.com> wrote:
>
> "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.
>
> > 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.
>
> >  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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2] ls-files: document that pathspecs are supported
  2023-03-11  9:19 [PATCH] ls-files: document that pathspecs are supported Adam Johnson via GitGitGadget
  2023-03-11 20:33 ` Junio C Hamano
@ 2023-03-12 11:55 ` Adam Johnson via GitGitGadget
  1 sibling, 0 replies; 4+ messages in thread
From: Adam Johnson via GitGitGadget @ 2023-03-12 11:55 UTC (permalink / raw)
  To: git; +Cc: Elijah Newren, Adam Johnson, Adam Johnson

From: Adam Johnson <me@adamj.eu>

The command has taken pathspecs, not just filenames, since at least 56fc5108
([PATCH] git-ls-files: generalized pathspecs, 2005-08-21).

Signed-off-by: Adam Johnson <me@adamj.eu>
---
    ls-files: document that pathspecs are supported
    
    The command has taken pathspecs, not just filenames, since f0096c06bcd
    (Convert read_tree{,_recursive} to support struct pathspec, 2011-03-25).
    
    Signed-off-by: Adam Johnson me@adamj.eu

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1466%2Fadamchainz%2Fdoc-ls-files-pathspecs-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1466/adamchainz/doc-ls-files-pathspecs-v2
Pull-Request: https://github.com/git/git/pull/1466

Range-diff vs v1:

 1:  4a0417ba8e5 ! 1:  7c95f4f5a7d ls-files: document that pathspecs are supported
     @@ Metadata
       ## Commit message ##
          ls-files: document that pathspecs are supported
      
     -    The command has taken pathspecs, not just filenames, since f0096c06bcd
     -    (Convert read_tree{,_recursive} to support struct pathspec, 2011-03-25).
     +    The command has taken pathspecs, not just filenames, since at least 56fc5108
     +    ([PATCH] git-ls-files: generalized pathspecs, 2005-08-21).
      
          Signed-off-by: Adam Johnson <me@adamj.eu>
      
     @@ Documentation/git-ls-files.txt: OPTIONS
       
       --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).
     +-	error (return 1).
     ++	If no path that matches <pathspec> appears in the index, treat this as
     ++	an error (return 1).
       
       --with-tree=<tree-ish>::
       	When using --error-unmatch to expand the user supplied
     @@ Documentation/git-ls-files.txt: followed by the  ("attr/<eolattr>").
       	Do not interpret any more arguments as options.
       
      -<file>::
     +-	Files to show. If no files are given all files which match the other
      +<pathspec>::
     - 	Files to show. If no files are given all files which match the other
     ++	Limits the files to show to only those that match any of the given
     ++	pathspecs. If no pathspecs are given, all files which match the other
       	specified criteria are shown.
      ++
      +For details on the <pathspec> syntax, see the 'pathspec' entry in


 Documentation/git-ls-files.txt | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index 1abdd3c21c5..d69a46f8a56 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>...]
 
 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
-	error (return 1).
+	If no path that matches <pathspec> appears in the index, treat this as
+	an error (return 1).
 
 --with-tree=<tree-ish>::
 	When using --error-unmatch to expand the user supplied
-	<file> (i.e. path pattern) arguments to paths, pretend
+	<pathspec> (i.e. path pattern) arguments to paths, pretend
 	that paths which were removed in the index since the
 	named <tree-ish> are still present.  Using this option
 	with `-s` or `-u` options does not make any sense.
@@ -225,9 +225,13 @@ followed by the  ("attr/<eolattr>").
 \--::
 	Do not interpret any more arguments as options.
 
-<file>::
-	Files to show. If no files are given all files which match the other
+<pathspec>::
+	Limits the files to show to only those that match any of the given
+	pathspecs. If no pathspecs are given, all files which match the other
 	specified criteria are shown.
++
+For details on the <pathspec> syntax, see the 'pathspec' entry in
+linkgit:gitglossary[7].
 
 OUTPUT
 ------

base-commit: 725f57037d81e24eacfda6e59a19c60c0b4c8062
-- 
gitgitgadget

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-03-12 11:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-11  9:19 [PATCH] ls-files: document that pathspecs are supported Adam Johnson via GitGitGadget
2023-03-11 20:33 ` Junio C Hamano
2023-03-12 11:52   ` Adam Johnson
2023-03-12 11:55 ` [PATCH v2] " Adam Johnson via GitGitGadget

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).