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

Re: [PATCH] Documentation: Link git-ls-files to core.quotePath variable.

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 22, 2017, 17:41 UTC
Message-ID
<xmqqbmtucedo.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<e55b3cb7-65bf-1609-2e8d-823b4336e07a@gmail.com>
Andreas Heiduk <asheiduk@gmail.com> writes:
Show 45 quoted lines
> [PATCH] Documentation: Clarify core.quotePath, remove cruft in
>  git-ls-files.
>
> Signed-off-by: Andreas Heiduk <asheiduk@gmail.com>
> ---
>
> I have merged the best parts about quoting into the core.quotePath
> description and cleaned up the text in git-ls-files.txt regarding the
> control characters.
>
>
>  Documentation/config.txt       | 22 ++++++++++++----------
>  Documentation/git-ls-files.txt | 11 ++++++-----
>  2 files changed, 18 insertions(+), 15 deletions(-)
>
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index f4721a0..25e65ae 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -340,16 +340,18 @@ core.checkStat::
>  	all fields, including the sub-second part of mtime and ctime.
>
>  core.quotePath::
> -	The commands that output paths (e.g. 'ls-files',
> -	'diff'), when not given the `-z` option, will quote
> -	"unusual" characters in the pathname by enclosing the
> -	pathname in a double-quote pair and with backslashes the
> -	same way strings in C source code are quoted.  If this
> -	variable is set to false, the bytes higher than 0x80 are
> -	not quoted but output as verbatim.  Note that double
> -	quote, backslash and control characters are always
> -	quoted without `-z` regardless of the setting of this
> -	variable.
> +	Commands that output paths (e.g. 'ls-files', 'diff'), will
> +	quote "unusual" characters in the pathname by enclosing the
> +	pathname in double-quotes and escaping those characters with
> +	backslashes in the same way C escapes control characters (e.g.
> +	`\t` for TAB, `\n` for LF, `\\` for backslash) or bytes with
> +	values larger than 0x80 (e.g. octal `\265` for "micro").  If
> +	this variable is set to false, bytes higher than 0x80 are not
> +	considered "unusual" any more.  Double-quotes, backslash and
> +	control characters are always escaped regardless of the
> +	setting of this variable.  Many commands can output pathnames
> +	completely verbatim using the `-z` option. The default value is
> +	true.

Even though I am not sure "\265 is micro" is a good example these days, as "high-bit set" is primarily meant to catch UTF-8 multi-bytes, I find the above much easier to read than the original.

Show 28 quoted lines
> diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
> index d2b17f2..88df561 100644
> --- a/Documentation/git-ls-files.txt
> +++ b/Documentation/git-ls-files.txt
> @@ -76,7 +76,8 @@ OPTIONS
>  	succeed.
>
>  -z::
> -	\0 line termination on output.
> +	\0 line termination on output and do not quote filenames.
> +	See OUTPUT below for more information.
>
>  -x <pattern>::
>  --exclude=<pattern>::
> @@ -192,10 +193,10 @@ the index records up to three such pairs; one from
> tree O in stage
>  the user (or the porcelain) to see what should eventually be recorded
> at the
>  path. (see linkgit:git-read-tree[1] for more information on state)
>
> -When `-z` option is not used, TAB, LF, and backslash characters
> -in pathnames are represented as `\t`, `\n`, and `\\`,
> -respectively. The path is also quoted according to the
> -configuration variable `core.quotePath` (see linkgit:git-config[1]).
> +Without the `-z` option pathnamens with "unusual" characters are
> +quoted as explained for the configuration variable `core.quotePath`
> +(see linkgit:git-config[1]).  Using `-z` the filename is output
> +verbatim and the line is terminated by a NUL byte.
Yup, this looks much nicer than the original.
Thanks.
Previous: Andreas HeidukNext: Philip Oakley
Message 5 of 18 in “Documentation: Link git-ls-files to core.quotePath variable.”
  1. Documentation: Link git-ls-files to core.quotePath variable.Andreas Heiduk, Feb 19, 2017
  2. Junio C HamanoFeb 21, 2017
  3. Andreas HeidukFeb 22, 2017
  4. Andreas HeidukFeb 22, 2017
  5. Junio C HamanoFeb 22, 2017
  6. Philip OakleyFeb 22, 2017
  7. Junio C HamanoFeb 22, 2017
  8. Andreas HeidukFeb 22, 2017
  9. 0/2 Documentation: Link git-ls-files to core.quotePath variable.Andreas Heiduk, Feb 24, 2017
  10. 1/2 Documentation: Improve description for core.quotePathAndreas Heiduk, Feb 24, 2017
  11. Jakub NarębskiFeb 24, 2017
  12. Andreas HeidukFeb 28, 2017
  13. 2/2 Documentation: Link descriptions of -z to core.quotePathAndreas Heiduk, Feb 24, 2017
  14. Jakub NarębskiFeb 24, 2017
  15. Andreas HeidukFeb 28, 2017
  16. Junio C HamanoFeb 28, 2017
  17. Andreas HeidukFeb 28, 2017
  18. Junio C HamanoFeb 28, 2017

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.