【问题标题】:Linux kernel "historical" git repository with full history具有完整历史的 Linux 内核“历史”git 存储库
【发布时间】:2023-03-17 20:11:01
【问题描述】:

我认为许多开发人员喜欢在git gui blame 的帮助下调查资源。正如commit for Linux-2.6.12-rc2(也称为mirrored at Github)中所解释的,它需要为此目的具有特殊的历史Linux 存储库。

Linux-2.6.12-rc2

初始 git 存储库构建。我不在乎完整的历史, 即使我们拥有它。我们可以创建一个单独的“历史”git 如果我们愿意,可以稍后存档,同时它是关于 导入 git 时为 3.2GB — 早期的空间 git 天不必要地复杂,当我们没有很多好的时候 基础设施。

让它撕裂!

我查看了很多准备好的历史存储库,但我没有找到包含可以追溯到版本零的更改,所以我放弃了,在这里问这个问题。

【问题讨论】:

    标签: linux git linux-kernel kernel


    【解决方案1】:

    这是我的设置。

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

    还有以下移植(info/grafts):

    1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 e7e173af42dbf37b1d946f9ee00219cb3b2bea6a
    7a2deb32924142696b8174cdf9b38cd72a11fc96 379a6be1eedb84ae0d476afbc4b4070383681178
    

    通过这些移植,我对自 0.01 以来的内核历史有了完整的了解。第一次移植将 Linus 存储库中的第一个版本与 tglx/history.git 的相应版本粘合在一起。第二个移植物将tglx/history.gitdavej/history.git 粘合在一起。

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


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

    【讨论】:

    【解决方案2】:

    这里是对 2018 年可用选项的回顾,重点是标签可用性和日期正确性。

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

    由 Dave Jones 开发,并在 archive.org 上提供。

    • 涵盖 2010 年之前的早期版本。
    • 244,464 次提交
    • 只有 184 个标签,涵盖 2.6 中的版本。标签that should have been created for all versions 似乎不见了。
    • 早期提交具有实际日期,但时间不正确 (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
    • 创建过程是documented on GitHub,看起来很彻底。

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

    由 Thomas Gleixner 创建。

    • 涵盖 2.4.0 到 2.6.12-rc2。
    • 包含 170 个标签,涵盖 2.5.X 和 2.6.X。
    • 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 月)
    • 正确提交

    【讨论】:

      【解决方案3】:

      引用的存储库不再存在。新的在这里: 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
      

      【讨论】:

        【解决方案4】:

        我发现最好的是git://git.kernel.org/pub/scm/linux/kernel/git/davej/history.git。那里的历史跟踪从 Linux-0.01 开始,但许多 cmets 很差,比如“导入 2.1.38pre1”。

        反正知识很多。

        感谢您的帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-23
          • 2015-03-23
          • 2015-10-25
          • 1970-01-01
          • 2012-10-14
          • 2013-08-02
          • 2020-01-13
          • 1970-01-01
          相关资源
          最近更新 更多