Linux内核"历史"git存储库具有完整的历史记录

ash*_*ger 45 linux git kernel linux-kernel

我想许多开发人员喜欢在帮助下调查来源git gui blame.正如在Linux-2.6.12-rc2提交中所解释的那样(也在Github上镜像),它需要有专门的历史Linux存储库用于此目的.

Linux的2.6.12-RC2

最初的git存储库构建.即使我们拥有它,我也不会厌倦完整的历史.如果我们想要的话,我们可以创建一个单独的"历史"git存档,同时当导入到git时它大约是3.2GB - 这会让早期的git日不必要地变得复杂,当我们没有很多良好的基础设施.

让它撕裂!

我已经查看了很多准备好的历史存储库但是我没有找到包含更改的版本返回到零版本,所以我放弃了,我在这里问这个问题.

Ces*_*arB 50

这是我的设置.

我有一个存储库,其中包含以下遥控器的克隆:

以下移植物(info/grafts):

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 e7e173af42dbf37b1d946f9ee00219cb3b2bea6a
7a2deb32924142696b8174cdf9b38cd72a11fc96 379a6be1eedb84ae0d476afbc4b4070383681178
Run Code Online (Sandbox Code Playgroud)

有了这些移植物,我对0.01以来的内核历史有了不间断的看法.第一个移植物将Linus'储存库中的第一个释放物与相应的释放物胶合在一起tglx/history.git.第二移植物粘合在一起tglx/history.gitdavej/history.git.

有一些旧版本缺失,旧版本具有发布粒度而不是补丁粒度,但这是我所知道的最佳设置.


编辑: Dave Jones向我指出http://www.archive.org/details/git-history-of-linux,这似乎正是你想要的.

  • 请注意,由于几个月前kernel.org遭到破坏,所有存储库都从git.kernel.org中删除.`torvalds/linux.git`,`stable/linux-stable.git`和`tglx/history.git`已经回来了; `davej/history.git`仍然缺失. (4认同)
  • 我将我的`davej/history.git`存储库副本上传到http://repo.or.cz/w/davej-history.git (4认同)
  • 谢谢你的镜子!我在 github https://github.com/schwabe/davej-history 和 https://github.com/schwabe/tglx-history 上制作了额外的镜像,以防万一 (2认同)

Mik*_*ger 9

引用的repos不再存在.新的在这里:https: //git.kernel.org/cgit/linux/kernel/git/history/history.git/

如果你像我一样想要保留一些repos sep,你可以利用移植物的替代品来做到这一点:

# 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
Run Code Online (Sandbox Code Playgroud)


Dio*_*lis 9

以下是2018年可用选项的评论,重点关注标签可用性和日期正确性.

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

由戴夫琼斯开发,并提供archive.org.

  • 涵盖早期版本到2010年.
  • 244,464次提交
  • 只有184个标签,涵盖2.6版本.应该为所有版本创建的标签似乎缺失.
  • 早期提交具有实际日期,但不正确的时间(11:00:00 199X -0600).
  • 有些日期似乎不正确.例如,无论是2.1.1102.1.111的日期Wed May 20 11:00:00 1998 -0600,虽然在最新的文件2.1.111快照日期1998-07-25 09:17.
  • 创建过程记录在GitHub上,看起来非常彻底.

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

由Thomas Gleixner创建.

  • 涵盖2.4.0至2.6.12-rc2.
  • 包含覆盖2.5.X和2.6.X的170个标签.
  • 63,428提交
  • 日期是正确的.
  • 包含转换为提交的补丁.

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

由Michael Ellerman创作,源自Yoann Padioleau的作品,基于Dave Jones和Thomas Gleixner重建的历史树木以及Linus的主线树.

  • 涵盖了完整的历史
  • 仅提供558个标签,大多数从2.0.0开始.
  • 790,471提交
  • 与Dave Jones的回购相同的日期问题.
  • 使用替换对象而不是移植物.

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

由Linux 历史团队拥有.

  • 涵盖早期版本至2.6.33-rc5.
  • 1710个标签,从0.10开始,涵盖大多数早期版本.
  • 244,774提交
  • 大多数历史版本的日期不正确Fri Nov 23 15:09:04 2007 -0500.

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

现代Linux开发.

  • 涵盖2.6.12-rc2(2005)至今
  • 569个标签
  • 777,419次提交(2018年8月)
  • 正确提交


ash*_*ger 5

我发现的最好的是git://git.kernel.org/pub/scm/linux/kernel/git/davej/history.git.跟踪的历史记录从Linux-0.01开始,但很多评论都不像"Import 2.1.38pre1".

无论如何,有很多知识.

感谢帮助!