From: Kenny Lee Sin Cheong Date: Wed, 18 Mar 2015 19:17:20 GMT Subject: Re: [v3 PATCH 1/2] reset: add '-' shorthand for '@{-1}' Message-ID: <87egomm7y7.fsf@gmail.com> In-Reply-To: <87iodym82z.fsf@gmail.com> On Wed, Mar 18 2015 at 04:29:44 AM, Sundararajan R 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 wrote: >> Junio C Hamano 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