社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

码小辫 • 2 年前 • 337 次点击  

码小辫
专注更多编程视频和电子书
天天在用钱




  新智元报道  

来源:Linus

编辑:LRS

【新智元导读】Linux之父Linus最近在邮件列表中又炮轰GitHub,直指GitHub的合并机制,直言只能产生绝对无用的「垃圾」信息,并告诫后来人:永远不要使用GitHub界面来merge任何东西!


嘴炮大师, Linux 之父 Linus Torvalds 最近又喷人了!
 
「So, GitHub, fxxk you!」
 
 
GitHub是基于git进行版本管理和代码开源的网站,并且Linus也是git之父,所以Linus可以说是GitHub之父之父(误)。
 
这次事件的起因是Paragon软件为Linux内核开发了一个NTFS 文件系统的读/写驱动程序代码,在commit时写了一个错误的message,导致Linus火气飙升。
 
八月初时,Torvalds就向Paragon软件公司提出了一个建议,要求应该提交一个pull request把代码合并到内核源代码中,以便将其读/写NTFS驱动程序包含在即将发布的5.15版本内核中。
 
NTFS是Windows原生的文件系统,Paragon的文件系统实现能够提高Linux和Windows文件的互操作性,而现有驱动程序的写支持能力不足。
 
事发仓库来自Paragon-Software-Group / linux-ntfs3。
 
 
 
可以看到在Fork后作者在GitHub初始化pull中写了一句Merge branch 'torvalds:master' into master,Linus在邮件中直接说这种message完全是不可接受的,commit message应当是有信息量的,可以从fork前的消息看到Linux仓库中Torvalds Linus一直在遵守约定。
 
 
邮件中还对GitHub 明褒暗贬,「GitHub 哪都好,就是merge不行」
 
 
并表示GitHub的merge只会「创造完全无用的垃圾合并」
 
 
Linus 强调说明,Linux 内核的合并需要在符合规则的情况下进行,这就意味着所提交的消息应包含:
1、正在合并的内容以及为什么合并这些内容
2、还需要确切的作者身份和提交者信息等
 
但GitHub把这些都给省略掉了,在Linux的kernel.org中,可以看到这些信息一目了然。
 
 
最后Linus表示,希望不要再犯这种低级错误了,在ksmbd的pull request中已经说过一遍了,并且我的回应还是和以前一样:GitHub的inital pull通常有点大病,这次我会接受,但希望你以后开发代码时能够以「合适」的方式。
 
 
Linus 的这种「直」性格能够极大的提升工作效率,一封邮件就把以后Linux相关的merge问题解决了,而他的金句也有很多。
 
「Talk is cheap, show me the code.」
 
 
2000年8月25日,在讨论关于内核线程优化的问题时,一个人提出了一个他认为非常高效的方案,但 Linus 并不认同,觉得这个人有点喜欢打嘴炮,也不想辩论了,直接看代码解决好了!这句话也深受广大程序员的认可,广为流传。
 
除了金句之外,Linus还喜欢炮轰各种各样看着不爽的东西。
 
2007年时,有位名为 Dmitry Kakurin 的开发者在查看了 Git 源代码并发现其使用的是纯 C 而非 C++ 后,他表示不可理喻,于是发帖喷道(太年轻了,敢和Linus喷):「完全没有什么可移植性,代码就是一坨屎。」BS的意思就是bullshit。
 
 
Linus直接回复「YOU are full of bullshit.」
 
Linus称,C++标准太复杂导致不合格使用者太多,容易误用和滥用语言特性。C++语言想解决的问题都不对路,都是一些皮毛问题,而没有涉及真正深层次的问题。C++的对象、模板和函数重载都基本上纯粹是C的语法扩展,是语法糖,总体上把C的语法和类型系统都弄得更糟。他建议,在系统编程里直接用C就可以,非系统编程里,应该选择一种有垃圾收集的语言,C++语言的特性基本无用,只会捣乱。
 
因此,什么时候C++都不可能是正确的选择。C++是狗屎,根本没啥设计,只是在C上面加了些渣滓而已。面向对象解决的都是一些小问题。
 
除了C++外,还有万恶之源英伟达,
 
2012年开始很多笔记本配备了采用optimus技术的双显卡设计,即同时具有Intel核心显卡和Nvidia独立显卡。

这种设计没有考虑到Linux系统,导致用户安装Linux系统后遇到无法解决的显卡驱动问题,而且更麻烦的是Nvidia又卖大量芯片给Android用,就导致了那句经典名言。
 
 
Linus上文说的是「NVIDIA 一直是我们与硬件制造商之间遇到的最严重的问题之一。」
 
Nvidia的驱动、CUDA核心运算、DLSS等技术始终闭源,与拥抱开源的Linus注定不合拍,不过我还是想说,
 
老黄,卖点显卡给玩家吧!



参考资料:

https://lore.kernel.org/lkml/CAHk-=wjbtip559HcMG9VQLGPmkurh5Kc50y5BceL8Q8=aL0H3Q@mail.gmail.com/

-END-

关注视频号,参与留言送书活动

↓↓↓↓

一个认真分享的小编

前沿技术 /名企内推 /干货分享

商务合作:dot3721
长按左侧二维码添加

点分享

点点赞

点在看

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/119755
 
337 次点击