Given a git commit hash, how to find out which kernel release contains it?

14,767

Solution 1

In GitHub kernel repository, you can check all tags/kernel versions.

Example for dc0827c128c0ee5a58b822b99d662b59f4b8e970 provided by Jim Paris:

Commit dc0827c@GitHub

If three-dots are clicked, full list of tags/kernel versions can be seen.

Solution 2

As mentioned on LWN, the easiest is:

git describe --contains f3a1ef9cee4812e2d08c855eb373f0d83433e34c

If you don't want a local clone, gitweb's "plain" formatted commit contains the same info in the X-Git-Tag header. Unfortunately kernel.org switched over to cgit which apparently does not disclose this information. Previously it was possible to find it out like this:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff_plain;h=f3a1ef9cee4812e2d08c855eb373f0d83433e34c

Here, X-Git-Tag is actually missing at the moment because that commit isn't in a tagged release in that repository. But you can look at an earlier commit, like:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff_plain;h=dc0827c128c0ee5a58b822b99d662b59f4b8e970

Here, you see:

X-Git-Tag: v3.4-rc1~184^2~10

which tells me that the tag "v3.4-rc1" was the first tag to follow my patch, so I'd expect to see it in v3.4.

Solution 3

You can use something like this

git-show f3a1ef9cee4812e2d08c855eb373f0d83433e34c:Makefile \
         | head -4 | awk -vORS='.' '{print $3}' | sed 's/\.*$//'

This requires local git repo.

Solution 4

Old question, but I was surprised no answer included:

git tag --contains <Commit ID>

From git tag help message:

Tag listing options
     --contains <commit>   print only tags that contain the commit

This requires a local GIT repository.

Since this question was the first result I got when looking for a solution, I think this would be helpful for others.

Share:
14,767

Related videos on Youtube

Joachim Breitner
Author by

Joachim Breitner

Updated on September 18, 2022

Comments

  • Joachim Breitner
    Joachim Breitner over 1 year

    Assume I have some issue that was fixed by a recent patch to the official Linux git repository. I have a work around, but I’d like to undo it when a release happens that contains my the fix. I know the exact git commit hash, e.g. f3a1ef9cee4812e2d08c855eb373f0d83433e34c.

    What is the easiest way to answer the question: What kernel releases so far contain this patch? Bonus points if no local Linux git repository is needed.

    (LWM discusses some ideas, but these do require a local repository.)

  • ahmet alp balkan
    ahmet alp balkan about 8 years
    Not sure if this is answer is valid anymore. X-Git-Tag does not appear.
  • cheshirecatalyst
    cheshirecatalyst about 8 years
    The first sentence is still valid. Finding the answer through gitweb is no longer an option, but that's why this question was edited almost 3 years ago to say just that.
  • Philipp Wendler
    Philipp Wendler about 8 years
    Nowadays GitHub shows all tags containing a specific commit just below the commit message, so no need to correlate by date anymore.