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
FPFrans Pop <elendil@planet.nl>
Date
Jan 27, 2010, 08:36 UTC
Message-ID
<201001270936.14935.elendil@planet.nl>
In-Reply-To
<7viqaorowo.fsf@alter.siamese.dyndns.org>
On Wednesday 27 January 2010, Junio C Hamano wrote:
Show 9 quoted lines
> 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.)

> But this is a literal answer that could be a less than optimal solution
> if you are having an XY problem.

The use case is a wrapper script for kernel builds in which some variation are needed (due to changes in the build system) when building older kernels, e.g. during bisections or when building older stable updates. So I test for the presence of commits that introduced relevant changes.

Thanks again, FJP

Previous: Junio C HamanoNext: Jonathan Nieder
Message 3 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.