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

Re: Quickly searching for a note

From
Joshua Jensen <jjensen@workspacewhiz.com>
Date
Sep 21, 2012, 18:29 UTC
Message-ID
<505CB21E.4040607@workspacewhiz.com>
In-Reply-To
<7vy5k370n7.fsf@alter.siamese.dyndns.org>
----- Original Message -----
From: Junio C Hamano
Date: 9/21/2012 11:21 AM
Show 25 quoted lines
> Joshua Jensen <jjensen@workspacewhiz.com> writes:
>
>> Background: To tie Perforce changelists to Git commits, I add a note
>> to a commit with the form "P4@123456".  Later, I use the note to sync
>> down the closest Perforce changelist matching the Git commit.
>>
>> I search for these notes by getting a list of revisions:
>>
>>          git rev-list --max-count=1000
>>
>> I iterate those revisions and run git show and grep on each:
>>
>>          git show -s --format=%N%n%s --show-notes=p4notes COMMIT
>>
>> For short runs, this isn't so bad.  For longer runs of commits (I just
>> walked through approximately 100), it takes a long time. Running 'git
>> show' is costing me about 7/10 of second, presumably because I am on
>> Windows.
> 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. We saw 300 commits deep once on a long-lived branch that hadn't been merged in yet, but I'd be surprised to see 1,000.

Still, it shows an arbitrary choice. Really, I want to say to Git: Walk up the history as far as you need to go from HEAD and return to me the first commit containing the text "P4@".

Any other thoughts?
-Josh
Previous: Junio C HamanoNext: Junio C Hamano
Message 5 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.