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

Re: Testing if a certain commit is in the current branch

From
Petr Baudis <pasky@suse.cz>
Date
Jan 27, 2010, 15:08 UTC
Message-ID
<20100127150834.GG9553@machine.or.cz>
In-Reply-To
<201001270936.14935.elendil@planet.nl>
On Wed, Jan 27, 2010 at 09:36:14AM +0100, Frans Pop wrote:
Show 14 quoted lines
> On Wednesday 27 January 2010, Junio C Hamano wrote:
> > Frans Pop <elendil@planet.nl> writes:
> > > I'm currently using the following command for this:
> > >    git log --pretty=format:%H | grep -q "^<commit id>"
> > >
> > > Problem is that with large repos that can be quite slow.
> > >
> > > Is there a faster way to do the test?
> >
> > test "$(git merge-base HEAD $commit)" = "$(git rev-parse $commit)"
> 
> Great! If the commit ID is not present that only takes 1 sec versus 11 secs 
> for my test. (If the commit _is_ present and fairly recent my test can be 
> faster, but 11 secs delay when it's not present hurts more.)

Isn't something very wrong if grepping the log output is faster than simple merge-base call? Can you post exact numbers?

				Petr "Pasky" Baudis
Previous: Frans PopNext: Frans Pop
Message 8 of 12 in “Testing if a certain commit is in the current branch”
  1. Frans PopJan 27, 2010
  2. Junio C HamanoJan 27, 2010
  3. Frans PopJan 27, 2010
  4. Jonathan NiederJan 27, 2010
  5. Frans PopJan 27, 2010
  6. Dale FarnsworthJan 27, 2010
  7. Frans PopJan 27, 2010
  8. Petr BaudisJan 27, 2010
  9. Frans PopJan 27, 2010
  10. Matthieu MoyJan 27, 2010
  11. Frans PopJan 27, 2010
  12. Johannes SchindelinJan 27, 2010

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.