Re: rev-parse: -- is sometimes a flag and sometimes an arg?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks.  Is there a more friendly way to do what I'm trying to
express?  Should I just use `rev-list -n1` instead?

On Sat, Aug 20, 2022 at 3:59 PM Junio C Hamano <gitster@xxxxxxxxx> wrote:
>
> Tim Hockin <thockin@xxxxxxxxxx> writes:
>
> > ```
> > $ git rev-parse unknown-tag
> > unknown-tag
> > fatal: ambiguous argument 'unknown-tag': unknown revision or path not
> > in the working tree.
> > Use '--' to separate paths from revisions, like this:
> > 'git <command> [<revision>...] -- [<file>...]'
> > ```
> >
> > OK
> >
> > ```
> > $ git rev-parse unknown-tag --
> > fatal: bad revision 'unknown-tag'
> > ```
> >
> > Much nicer error.  But:
> >
> > ```
> > $ git rev-parse HEAD --
> > 113a928239196d0d9f70671517ce917071ceecf6
> > --
> > ```
> >
> > That's not very nice.  Why is "--" treated as an arg?
> >
> > ```
> > $ git rev-parse HEAD
> > 113a928239196d0d9f70671517ce917071ceecf6
> > ```
> >
> > Looking at rev-parse code it SEEMS to be intentional, but I can't
> > comprehend why.
>
> Because the first function of "rev-parse" (among many others) is to
> be a helper usable in scripted Porcelains to "parse" command line
> arguments, shifting them into revs and "files".  Without options
> like --revs-only, --no-revs, --flags etc., it dumps everything, while
> translating "revs" into raw object names, to its output.  "--" is a
> valid command line option for whatever scripted Porcelain you'd be
> writing using "rev-parse" to help parsing its command line arguments.
>
> So everything we see above is very much working as designed.
>



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux