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

Re: [PATCH 1/3] rev-parse: add --sq-quote to shell quote arguments

From
Christian Couder <chriscool@tuxfamily.org>
Date
Apr 25, 2009, 05:06 UTC
Message-ID
<200904250706.40533.chriscool@tuxfamily.org>
In-Reply-To
<49F17945.8000004@viscovery.net>
Le vendredi 24 avril 2009, Johannes Sixt a écrit :
Show 20 quoted lines
> Junio C Hamano schrieb:
> > Not very readable.  A better example might be to demonstrate something
> > like this:
> >
> > 	$ cat >your-git-script.sh <<\EOF
> > 	#!/bin/sh
> > 	# quote user-supplied arguments
> > 	args=$(git rev-parse --sq-quote "$@")
> >         # and use it inside a handcrafted command line
> >         command="git frotz -n24 $args"
> >         eval "$command"
> > 	EOF
> >
> > 	$ sh your-git-script.sh "a b'c"
> >
> > i.e, put stress on how to use it, not on how it works internally.
>
> Hmm, that makes me wonder why we special-case shell-quoting and implement
> it in an executable. Why don't we have perl-quoting, C-quoting,
> PHP-quoting, $language-of-your-choice quoting, etc, too?

Because there are a lot of shell scripts in the Git source code and it's an important problem for shell scripts to properly handle arguments.

> I think we should simply move sq() from git-am to git-sh-setup and use
> that in git-bisect.

We already have an implementation of shell quoting in C, why not use it everywhere instead of having 2 implementations?

And what happens if someone want to port to C a shell script that uses sq()? The implementation used will have to be the one in C, so why not use it right now?

Regards, Christian.

Previous: Johannes SixtNext: Christian Couder
Message 4 of 5 in “rev-parse: add --sq-quote to shell quote arguments”
  1. 1/3 rev-parse: add --sq-quote to shell quote argumentsChristian Couder, Apr 24, 2009
  2. Junio C HamanoApr 24, 2009
  3. Johannes SixtApr 24, 2009
  4. Christian CouderApr 25, 2009
  5. Christian CouderApr 25, 2009

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.