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

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

From: Yann Dirson <hidden>
Date: 2016-06-15 22:50:00

Possibly related (same subject, not in this thread)

On Tue, 09 Nov 2010 16:33:31 -0800
Kevin Ballard [off-list ref] wrote:
On Nov 9, 2010, at 4:18 PM, Junio C Hamano wrote:
quoted
Yann Dirson [off-list ref] writes:
quoted
quoted
quoted
Syntax like origin/pu^{/Merge 'kb/blame-author-email'}2 would be
...
Another idea: origin/pu^{:2/Merge 'kb/blame-author-email'}
What are these "2"s?

You need to question how you figured out the commit you want is the
second one reachable (in whatever traversal order) from something
in the first place.  Didn't you use "git log --oneline" or
something to find that out? At that point, you have the object name
already, so I doubt such a "counting" feature is of much practical
use.
I usually always have a gitk displaying history.  Whereas it shows the
commit summary, it does not show the sha1 for each commit - and even if
it did, my brain is still more comfortable dealing with words than
hashes (though that may arguably be an effect of aging ;)
The particular case that prompted this for me was I knew I had
created two commits called "WIP", scheduled for renaming later, and I
wanted to quickly look at the contents of the first one. I would have
loved to be able to type something like `git show :/WIP/2`. I suppose
this situation may be rare enough not to bother supporting it in the
new syntax. With the new syntax it will be possible to do something
like `git show HEAD^{:/WIP}^^{:/WIP}`, but that looks awfully awkward.
Another use for counting would be for reflog, to lookup things like
"2nd to last of yesterday's commits" - that could be spelled like
"master^{:2:yesterday}" or similar.  Not sure it's worth it (I hardly
use the @{anything vague} syntax myself, especially because it is so
vague), but that looked similar enough to be mentionned here.
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.

-- 
Yann Dirson - Bertin Technologies
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help