git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Quickly searching for a note

From
Johannes Sixt <j6t@kdbg.org>
Date
Sep 21, 2012, 20:50 UTC
Message-ID
<505CD2FA.80200@kdbg.org>
In-Reply-To
<505CCD2A.8020003@workspacewhiz.com>
Am 21.09.2012 22:25, schrieb Joshua Jensen:
Show 26 quoted lines
> ----- 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
Previous: Joshua JensenNext: Joshua Jensen
Message 8 of 19 in “Quickly searching for a note”
  1. Joshua JensenSep 21, 2012
  2. Andreas SchwabSep 21, 2012
  3. Joshua JensenSep 21, 2012
  4. Junio C HamanoSep 21, 2012
  5. Joshua JensenSep 21, 2012
  6. Junio C HamanoSep 21, 2012
  7. Joshua JensenSep 21, 2012
  8. Johannes SixtSep 21, 2012
  9. Joshua JensenSep 21, 2012
  10. Jeff KingSep 21, 2012
  11. Junio C HamanoSep 21, 2012
  12. Michael J GruberSep 22, 2012
  13. Junio C HamanoSep 22, 2012
  14. Michael J GruberSep 23, 2012
  15. Jeff KingSep 25, 2012
  16. Michael J GruberSep 25, 2012
  17. Jeff KingSep 25, 2012
  18. Junio C HamanoSep 25, 2012
  19. Junio C HamanoSep 22, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.