Thread (9 messages) flat view 9 messages, 6 authors, 2016-06-15

Re: [RFC] Using gitrevisions :/search style with other operators

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:50:00

Possibly related (same subject, not in this thread)

Yann Dirson [off-list ref] writes:
On Tue, 09 Nov 2010 23:46:59 -0800
Kevin Ballard [off-list ref] wrote:
quoted
On Nov 9, 2010, at 11:32 PM, Yann Dirson wrote:
quoted
quoted
Another thing to consider - the current :/foo syntax searches for
the newest commit reachable from any ref. Using the ^{} syntax will
require specifying a ref first. I'm not sure this is a problem
though, as I'm not really sure why :/foo searches from all refs to
begin with.
The syntax could be extended so that ^{whatever} starts looking at
current commit (ie. HEAD), somewhat like @{whatever} looks at
reflog for current branch.
The <ref>@<sth> is about reflogs: <ref>@{<n>}, <ref>@{<aproxidate>},
@{-<n>}, <ref>@{upstream} / <ref>@{u}.  Because HEAD has separate
reflog, then @{<sth>} is about current branch reflog (@{-<n>} uses
HEAD reflog, though).  <ref> must be something that has reflog.

The <obj>^<sth> is about dereferencing: <tag>^{<objtype>} and <tag>^{},
which includes following parents <commit>^ and <commit>^<n>.  Then
there are odd <commit-ish>^! (returning range) and <commit-ish>^@
(all parents) but which nevertheless follow this rule.

The <obj>:<sth> is (with single exception of ':/<regexp>') about
selecting subitem (path): <tree-ish>:<path>, [:<stage>]:<path>
quoted
:/foo doesn't start from the current commit - it searches all refs.
However, making ^{} search all refs if not given one doesn't make
sense for any operator except :/foo, so I don't think it's worth doing
Yes, that's why I suggested to make it search from HEAD, not from all
refs.
Perhaps '--all^{/foo}'?  Just kidding... I think ;-)


About n-th match: I think that ^{<n>/foo} or ^{:<n>/foo}... or
^{:nth(<n>)/foo} as generic form of e.g. ^{3rd/foo} a la Perl 6 :-)
Or perhaps even full form ^{m:nth(<n>)/foo}... well, perhaps not.

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help