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

Re: "Git worktree list" on paths with newlines

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Feb 28, 2022, 08:43 UTC
Message-ID
<CAPig+cT9H=rcQz8GhAL5RQP+iXYzYc56yn2eWpQPJz9K0P-zLw@mail.gmail.com>
In-Reply-To
<xmqqilt2g9cb.fsf@gitster.g>
On Fri, Feb 25, 2022 at 3:47 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 14 quoted lines
> Kang-Che Sung <explorer09@gmail.com> writes:
> > I wish "git worktree list --porcelain" would show directory names with some
> > quoting or escaping so that tricky names can be handled easily for any program
> > that reads the porcelain output. But I didn't see any command line option that
> > enables quoting or escaping of file names.
> >
> > Does anyone have an idea on what I could do?
>
> I agree that an output mode that claims to be --porcelain should
> produce output that is machine-parseable without ambiguity.
>
> The usual practice is to use quote_c_style() for output without
> "-z", and with "-z", just use the NUL as the termination character,
> as you shouldn't be listing strings with embedded NUL.
A couple additional comments...

Phillip has just submitted a patch to add a `-z` mode to `git worktree list --porcelain`. You can see it at [1].

Porcelain mode should indeed be quoting the path using quote_c_style(); the fact that it doesn't is a bug which would be nice to fix. This has been discussed previously[2], however, there may be backward compatibility concerns[3].

[1]: https://lore.kernel.org/git/pull.1164.git.1645801727732.gitgitgadget@gmail.com/ [2]: https://lore.kernel.org/git/CAPig+cQq_RnanDQ3jHfNz_L58WyzmsUJBhtdrLxa=H0v_io+WA@mail.gmail.com/ [3]: https://lore.kernel.org/git/936f9b7c-6d54-00bc-f136-4cb4c2836eb6@gmail.com/

Previous: Junio C Hamano
Message 3 of 3 in “"Git worktree list" on paths with newlines”
  1. Kang-Che SungFeb 25, 2022
  2. Junio C HamanoFeb 25, 2022
  3. Eric SunshineFeb 28, 2022

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.