Subject: Re: [v3 PATCH 1/2] reset: add '-' shorthand for '@{-1}'

From: Kenny Lee Sin Cheong <[email-masked]>
Date: Wed, 18 Mar 2015 15:17:20 -0400

On Wed, Mar 18 2015 at 04:29:44 AM, Sundararajan R <[email-masked]> wrote:
> Teaching reset the - shorthand involves checking if any file named '-' exists.
> check_filename() is used to perform this check.
>
> When the @{-1} branch does not exist then it can be safely assumed that the
> user is referring to the file '-',if any. If this file exists then it is reset or else
> a bad flag error is shown.
>
> But if the @{-1} branch exists then it becomes ambiguous without the explicit 
> '--' disambiguation as to whether the user wants to reset the file '-' or if 
> he wants to reset the working tree to the previous branch. Hence the program dies
> with a message about the ambiguous argument.
>
I might be wrong but I think any pathspec that begins with "-" needs to
be preceded by either a "--" marker or be specified as "./-filename",
else verify_filename just die. Therefore you would need to do something
like git reset ./- if you wanted to reset a file. I don't know if given
simply "-" as filename is desired since options starts with "-".

I don't know if you saw but Junio posted a while ago about about
allowing "-" as a stand-in everywhere a revision was allowed. He updated
a version on pu : "d40f108d"

> On Tue, Mar 17 2015 at 02:49:48 AM, Junio C Hamano <[email-masked]> wrote:
>> Junio C Hamano <[email-masked]> writes:
>>
>> 	if (try to see if it is a revision or regvision range) {
>>         	/* if failed ... */
>> 		if (starts with '-') {
>>                 	do the option thing;
>>                         continue;
>> 		}
>> 		/* args must be pathspecs from here on */
>>                 check the  '--' disambiguation;
>>                 add pathspec to prune-data;
>> 	} else {
>> 		got_rev_arg = 1;
>> 	}
>>

See $gmane/265672