Linux kernel "historical" git repository with full history Linux kernel "historical" git repository with full history linux linux

Linux kernel "historical" git repository with full history


Here is my setup.

I have a repository with a clone of the following remotes:

And the following grafts (info/grafts):

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 e7e173af42dbf37b1d946f9ee00219cb3b2bea6a7a2deb32924142696b8174cdf9b38cd72a11fc96 379a6be1eedb84ae0d476afbc4b4070383681178

With these grafts, I have an unbroken view of the kernel history since 0.01. The first graft glues together the very first release in Linus' repository with the corresponding release of tglx/history.git. The second graft glues together tglx/history.git and davej/history.git.

There are a few older versions missing, and the older versions have release granularity instead of patch granularity, but this is the best setup I know of.


Edit: Dave Jones pointed me to http://www.archive.org/details/git-history-of-linux, which seems to be exactly what you want.


Here is a review of available 2018 options with a focus on tag availability and date correctness.

https://archive.org/download/git-history-of-linux/full-history-linux.git.tar

Developed by Dave Jones, and made available on archive.org.

  • Covers early versions to 2010.
  • 244,464 commits
  • Just 184 tags, covering versions in 2.6. The tags that should have been created for all versions seem to be missing.
  • Early commits have realistic dates, but incorrect times (11:00:00 199X -0600).
  • Some dates seem to be incorrect. For example, both 2.1.110 and 2.1.111 are dated Wed May 20 11:00:00 1998 -0600, although the latest file in the 2.1.111 snapshot is dated 1998-07-25 09:17.
  • The creation process is documented on GitHub and seems very thorough.

https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/

Created by Thomas Gleixner.

  • Covers 2.4.0 to 2.6.12-rc2.
  • Contains 170 tags covering 2.5.X and 2.6.X.
  • 63,428 commits
  • Dates are correct.
  • Contains patches converted into commits.

https://github.com/mpe/linux-fullhistory

Created by Michael Ellerman, derived from work by Yoann Padioleau, based on historical trees reconstructed by Dave Jones and Thomas Gleixner, and Linus' mainline tree.

  • Covers full history
  • Provides only 558 tags, mostly starting at 2.0.0.
  • 790,471 commits
  • Same issues with dates as in Dave Jones's repo.
  • Uses replace objects instead of grafts.

https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/

Owned by the Linux history team.

  • Covers early versions to 2.6.33-rc5.
  • 1710 tags, starting with 0.10, covering most early versions.
  • 244,774 commits
  • Most historic versions are incorrectly dated Fri Nov 23 15:09:04 2007 -0500.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/

Modern Linux development.

  • Covers 2.6.12-rc2 (2005) until today
  • 569 tags
  • 777,419 commits (August 2018)
  • Proper commits


the referenced repos no longer exist. the new one is here:https://git.kernel.org/cgit/linux/kernel/git/history/history.git/

if you're like me and want to keep some repos sep, you can leverage alternates with the graft to do so:

# Same dir as main linux$ git clone --bare git://git.kernel.org/pub/scm/linux/kernel/git/history/history.git$ cd linux/.git/$ echo ../../../history.git/objects >> objects/info/alternates$ echo 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 e7e173af42dbf37b1d946f9ee00219cb3b2bea6a >> info/grafts$ echo 7a2deb32924142696b8174cdf9b38cd72a11fc96 379a6be1eedb84ae0d476afbc4b4070383681178 >> info/grafts