[PATCH RFC] revset: use '%' as an operator for 'only'

Sean Farley sean.michael.farley at gmail.com
Tue Nov 11 14:02:16 CST 2014


Sean Farley writes:

> Matt Mackall writes:
>
>> On Fri, 2014-11-07 at 11:06 -0800, Sean Farley wrote:
>>> Sean Farley writes:
>>> 
>>> > Pierre-Yves David writes:
>>> >
>>> >> On 11/07/2014 06:15 PM, Sean Farley wrote:
>>> >>>
>>> >>> Pierre-Yves David writes:
>>> >>>
>>> >>>> On 11/07/2014 05:40 PM, Sean Farley wrote:
>>> >>>>>
>>> >>>>> Pierre-Yves David writes:
>>> >>>>>
>>> >>>>>> On 11/06/2014 10:56 PM, Sean Farley wrote:
>>> >>>>>>> # HG changeset patch
>>> >>>>>>> # User Sean Farley <sean.michael.farley at gmail.com>
>>> >>>>>>> # Date 1415314518 28800
>>> >>>>>>> #      Thu Nov 06 14:55:18 2014 -0800
>>> >>>>>>> # Node ID 752f70bee3b0542ca36b1fecbb70c954d6017061
>>> >>>>>>> # Parent  2d54aa5397cdb1c697673ba10b7618d5ac25c69e
>>> >>>>>>> revset: use '%' as an operator for 'only'
>>> >>>>>>
>>> >>>>>> Could we get an RevsetOperatorPLan page (or extension of an existing
>>> >>>>>> page). To list all the current and wished operators?
>>> >>>>>
>>> >>>>> Sure, go ahead and start one ;-) If you want me to start it, you'll have
>>> >>>>> to wait a little while :-/
>>> >>>>
>>> >>>> To clarify. I do not think we should accept this patch until we have a
>>> >>>> full plan defined.
>>> >>>>
>>> >>>> I'm ok with waiting a little while for more operator.
>>> >>>
>>> >>> http://mercurial.selenic.com/wiki/RevsetOperatorPlan
>>> >>
>>> >> Can I trick you into listing all the existing operator, then all the one 
>>> >> we consider (like successors, etc). Because actual expendend proposal?
>>> >
>>> > Sure.
>>> 
>>> Updated.
>>
>> So.. % has some special meaning to cmd.exe and Powershell. Much like
>> Unix $, it may be replaced in some quoted strings.
>>
>> As judged by the support requests we get, no living Windows users know
>> what "shell quoting" is and/or what the actual rules are, so this is a
>> bit of a problem. We need to make sure we're not likely to fall afoul of
>> any replacement rules in any vaguely probable scenario.
>
> Oh, Windows. I can test out some of the quoting now that I have a
> windows dev box.

On Windows (using non-=bash shells), %var% is only expanded when 'var'
exists and is surrounded by '%'. For example, %home% (case insensitive)
is automatically defined, so we get this:

$ echo .%home
.%home
$ echo .%home%
.C:\Users\sfarley

$ echo .%foo
.%foo
$ echo .%foo%
.%foo%


More information about the Mercurial-devel mailing list