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

Re: [RFC/PATCH] git-completion.bash: remove bashism to fix ZSH compatibility

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 11, 2013, 18:09 UTC
Message-ID
<7vwqtd95bm.fsf@alter.siamese.dyndns.org>
In-Reply-To
<vpqppz5u8te.fsf@grenoble-inp.fr>
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
Show 9 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Ahh, thanks for reminding me of this.  You are right; these two
>> functions are broken when the user has CDPATH set, I think.
>>
>> Here is a reroll.
>
> Thanks. Even nicer that the previous since the CDPATH implied the
> subshell anyway.

Actually, "cd", not CDPATH, is what implies that the caller must be calling us in a subshell, e.g.

	result=$(__git_ls_files_helper dir/ args...)

Otherwise the user's shell would have been taken to an unexpected place, with or without CDPATH.

So strictly speaking there is no reason for an extra subshell here, but writing this in the way the patch does makes our intention crystal clear, I think.

In any case, let's queue this fix for the 1.8.2 final. The CDPATH thing will affect not just zsh but bash users.

Previous: Matthieu MoyNext: Paul Smith
Message 10 of 12 in “git-completion.bash: remove bashism to fix ZSH compatibility”
  1. git-completion.bash: remove bashism to fix ZSH compatibilityMatthieu Moy, Mar 11, 2013
  2. Junio C HamanoMar 11, 2013
  3. Junio C HamanoMar 11, 2013
  4. Matthieu MoyMar 11, 2013
  5. Junio C HamanoMar 11, 2013
  6. Manlio PerilloMar 11, 2013
  7. Manlio PerilloMar 11, 2013
  8. Junio C HamanoMar 11, 2013
  9. Matthieu MoyMar 11, 2013
  10. Junio C HamanoMar 11, 2013
  11. Paul SmithMar 11, 2013
  12. Manlio PerilloMar 11, 2013

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.