24

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.)

6

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.

21

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.

  • 1
    Not sure if this is answer is valid anymore. X-Git-Tag does not appear. – Ahmet Alp Balkan Feb 12 '16 at 19:41
  • 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. – Jim Paris Feb 18 '16 at 18:19
1

You can use something like this

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

This requires local git repo.

-1

You can see the commit on the github source mirror. I suppose you could correllate the release tags to the commit date (in this case, your commit is five days old, the most recent tagged RC on master is seven), but frankly this is easier to get at if you clone the source locally.

  • Correlating the date won't work since the patch may not be merged into any release yet, or it may have been written originally for a previous release and just not merged until more recently. – psusi Aug 9 '12 at 13:04
  • 1
    Nowadays GitHub shows all tags containing a specific commit just below the commit message, so no need to correlate by date anymore. – Philipp Wendler Apr 13 '16 at 12:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.