On August 6, 2019 1:38 PM, Jeff King wrote: > To: Randall S. Becker <rsbecker@xxxxxxxxxxxxx> > Cc: 'Junio C Hamano' <gitster@xxxxxxxxx>; git@xxxxxxxxxxxxxxx > Subject: Re: [PATCH 0/3] --end-of-options marker > > On Tue, Aug 06, 2019 at 12:36:26PM -0400, Randall S. Becker wrote: > > > > > This series provides an alternative to "--" to stop option parsing > > > > without indicating that further arguments are pathspecs. > > > > Would this offer the opportunity to, in the long term, supply options > > to external diff engines, for example? > > > > Something like git diff --end-of-options --diff-opt1 --diff-opt2 -- a > > b > > I'd expect that to interpret "--diff-opt1" and "--diff-opt2" as non-option > arguments, which in the context of git-diff means endpoints of the diff. > > So no, I don't think you can use it like you're asking here. > > > I'm just noodling here, wondering why otherwise > > > > git rev-list --max-parents=4 -- --count docs/ > > > > does not work. I thought -- was pretty specific in terms of turning > > off interpretation. So is it not a defect that --count is being interpreted? > > The command-line above means that "--count" is interpreted > (unambiguously) as a path. The problem is that if you want it to be > interpreted as a starting point for traversal, then it must come _before_ the > "--". > > > I have a fear for all my sub-teams who script with the assumption that > > -- has a specific meaning of stopping interpretation. > > Nothing about "--" is changed by my series; it will still stop option > interpretation in rev-list and in other commands. But as before, rev-list (and > other Git commands that use the revision.c parser) use it to separate > revisions and pathspecs. That's unlike how most other programs use "--", but > that ship sailed for Git in 2005. Thanks for the explanation. Randall