From: Johannes Sixt <j6t@kdbg.org>
To: Joshua Jensen <jjensen@workspacewhiz.com>
Cc: Junio C Hamano <gitster@pobox.com>,
"git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: Quickly searching for a note
Date: Fri, 21 Sep 2012 22:50:02 +0200 [thread overview]
Message-ID: <505CD2FA.80200@kdbg.org> (raw)
In-Reply-To: <505CCD2A.8020003@workspacewhiz.com>
Am 21.09.2012 22:25, schrieb Joshua Jensen:
> ----- Original Message -----
> From: Junio C Hamano
> Date: 9/21/2012 2:04 PM
>> Joshua Jensen <jjensen@workspacewhiz.com> writes:
>>
>>>> Is there any particular reason you do that as two separate steps?
>>>> It would feel more natural, at least to me, to do something along
>>>> the lines of
>>>>
>>>> git log --show-notes=p4notes -1000
>>>>
>>>>
>>> Thanks for the reply.
>>>
>>> I did not make clear above that I want to stop looking when I find the
>>> first commit that has the note.
>>>
>>> In the case of 'git log --show-notes=p4notes -1000', Git will process
>>> and hand me the log output for 1,000 commits. It is rare I need to
>>> walk that deep.
>> I simply matched it with your initial "rev-list --max-count=1000".
>> The "log" command pages and you can hit 'q' once you saw enough (in
>> other words, you do not have to say -1000).
>>
> This is run via script without user intervention. Presumably, Git will
> do 1,000 commits of work when it may only need to do 1 or 5 or 10?
The trick is to pipe 'git log' output into another process that reads no
more than it needs and exits. Then 'git log' dies from SIGPIPE before it
processed all 1000 commits because its down-stream has gone away.
For example:
git log --show-notes=p4notes -1000 |
sed -n -e '/^commit /h' -e '/P4@/{H;g;p;q}'
(The pipeline keeps track of the most recent 'commit' line, and when it
finds the 'P4@' it prints the most recent 'commit' line followed by the
'P4@' line.)
-- Hannes
next prev parent reply other threads:[~2012-09-21 20:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-21 14:41 Quickly searching for a note Joshua Jensen
2012-09-21 15:10 ` Andreas Schwab
2012-09-21 18:34 ` Joshua Jensen
2012-09-21 17:21 ` Junio C Hamano
2012-09-21 18:29 ` Joshua Jensen
2012-09-21 20:04 ` Junio C Hamano
2012-09-21 20:25 ` Joshua Jensen
2012-09-21 20:50 ` Johannes Sixt [this message]
2012-09-21 21:10 ` Joshua Jensen
2012-09-21 23:37 ` Jeff King
2012-09-21 23:51 ` Junio C Hamano
2012-09-22 16:10 ` Michael J Gruber
2012-09-22 20:23 ` Junio C Hamano
2012-09-23 15:07 ` Michael J Gruber
2012-09-25 0:42 ` Jeff King
2012-09-25 7:24 ` Michael J Gruber
2012-09-25 0:38 ` Jeff King
2012-09-25 16:19 ` Junio C Hamano
2012-09-22 4:51 ` Junio C Hamano
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=505CD2FA.80200@kdbg.org \
--to=j6t@kdbg.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jjensen@workspacewhiz.com \
/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).