Paragon 软件公司最近将他们的 NTFS 驱动提交到了 Linux 内核,但 Linus 在把相关代码拉取到 5.15 版本的内核时,抱怨他们的这个 commit 使用了 GitHub merge,并直言“Github 制造了毫无用处的垃圾合并信息”,永远都不应该使用 Github 的操作界面来合并任何东西。
Linus 表示,GitHub 是一个很好的代码托管网站,它在许多方面都做得很好,但「合并」不是其中之一。Linus 强调道,Linux 内核的合并需要在符合规则的情况下进行,这就意味着所提交的消息应包含:正在合并的内容以及为什么合并这些内容。同时,还需要确切的作者身份和提交者信息等。但所有这些都 GitHub 完全搞砸了。
Linus 使用 Paragon 公司的 commit 进行了举例,他表示下面的内容是不能被接受的,更不用说还附带了名字为"github.com"这种虚假的 committer 信息。
- Merge branch 'torvalds:master' into master
Linus 指出,每一个 PR 都应该被签名。在理想的世界里,PR 应该经过 PGP 签名,并且他可以通过信任链直接追踪到 PR 提交者,但 Linus 实际上从未要求这样做。
事实上,Linus 早在 2012 年就发布过类似的观点,他表示自己不会使用 GitHub 的 PR 功能,因为 GitHub 丢弃了所有相关信息,例如请求他拉取代码的贡献者,但 Linus 无法找到这名贡献者的有效邮件地址。Linus 认为,Git 自身就附带了一个良好的 PR 生成模块,但 GitHub 却决定用他们自己的低劣版本来替代。
最后 Linus 还是合并了 Paragon 软件公司提交的代码,他说道:“我现在会接受这些提交,但在以后的开发中,你们需要在符合规则的情况下完成任务。”