Subject: Re: Git archiving only branch work

From: Jeff King <[email-masked]>
Date: Fri, 14 Nov 2014 10:32:23 -0500

On Thu, Nov 13, 2014 at 01:48:12PM -0800, Junio C Hamano wrote:

> Jeff King <[email-masked]> writes:
> 
> > I agree they are technically orthogonal, but I cannot think of a case
> > where I have ever generated actual _pathspecs_, which might have
> > wildcards, and needed to use "-z". The point of using "-z" is that you
> > do not know what crap you are feeding.
> 
> You do not have to generate, i.e. you should be allowed to do this:
> 
>     $ git cmd --stdin -z <list-of-patterns

Right. My point is that I am not sure anybody ever really _wants_ to do
this, versus:

  git cmd -- "$pattern1" "$pattern2"

Because patterns tend to be small in number and made with predictable
characters known to the script writer. It is sets of arbitrary filenames
that tend to be long and contain random junk.

> And this is not about "flexibility".  Unless your plan is to forbid
> a corner case you do not anticipate and always disable pathspec
> globbing, you would need to say something like:

I had just assumed we would forbid, but yeah, you could have a switch to
handle either case. That is much nicer to the corner case people.

> Which is awkward.  And "--stdin -z" is most likely used in scripts;
> we are not forcing people to keep typing --literal-pathspecs by
> leaving them orthogonal *and* people do not have to remember one
> more exception (the default of --literal-pathspecs is flipped only
> when --stdin -z is in use) to the rule.

It is not about "forcing to type". It is about "did not realize this was
a potential pitfall and did not write it in the script in the first
place".

-Peff