git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Yann Dirson <dirson@bertin.fr>
Cc: Kevin Ballard <kevin@sb.org>, Junio C Hamano <gitster@pobox.com>,
	git list <git@vger.kernel.org>, Jeff King <peff@peff.net>
Subject: Re: [RFC] Using gitrevisions :/search style with other operators
Date: Wed, 10 Nov 2010 07:26:20 -0800 (PST)	[thread overview]
Message-ID: <m3eiatfbg2.fsf@localhost.localdomain> (raw)
In-Reply-To: <20101110084609.78f532a5@chalon.bertin.fr>

Yann Dirson <dirson@bertin.fr> writes:
> On Tue, 09 Nov 2010 23:46:59 -0800
> Kevin Ballard <kevin@sb.org> wrote:
>> On Nov 9, 2010, at 11:32 PM, Yann Dirson wrote:
>> 
>>>> 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>

>> 
>> :/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

  reply	other threads:[~2010-11-10 15:26 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-09  7:30 [RFC] Using gitrevisions :/search style with other operators Yann Dirson
2010-11-09  8:06 ` Kevin Ballard
2010-11-09  9:24   ` Yann Dirson
2010-11-10  0:18     ` Junio C Hamano
2010-11-10  0:33       ` Kevin Ballard
2010-11-10  7:32         ` Yann Dirson
2010-11-10  7:46           ` Kevin Ballard
2010-11-10  7:46             ` Yann Dirson
2010-11-10 15:26               ` Jakub Narebski [this message]
2010-11-10 16:37                 ` [PATCH] get_sha1: support relative path "<obj>:<sth>" syntax Nguyễn Thái Ngọc Duy
2010-11-10 17:17                   ` Matthieu Moy
2010-11-10 17:47                   ` Jonathan Nieder
2010-11-11 13:18                     ` Nguyen Thai Ngoc Duy
2010-11-10 19:34                   ` Junio C Hamano
2010-11-11  1:30                     ` Nguyen Thai Ngoc Duy
2010-12-09 21:10                   ` Junio C Hamano
2010-12-09 21:37                     ` Junio C Hamano
2010-12-10  1:35                       ` Nguyen Thai Ngoc Duy
2010-11-10 17:23                 ` [RFC] Using gitrevisions :/search style with other operators Junio C Hamano
2010-11-10 18:19                   ` Jakub Narebski
2010-11-09 16:10 ` Jeff King
  -- strict thread matches above, loose matches on Subject: below --
2010-11-05 22:38 Kevin Ballard
2010-11-08 19:09 ` Junio C Hamano
2010-11-08 22:11   ` Kevin Ballard
2010-11-09  5:16     ` Jeff King
2010-11-09 15:59       ` Junio C Hamano
2010-11-09 16:08         ` Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3eiatfbg2.fsf@localhost.localdomain \
    --to=jnareb@gmail.com \
    --cc=dirson@bertin.fr \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=kevin@sb.org \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).