飞道的博客

不写注释就是垃圾

769人阅读  评论(0)

最近Linux6.2出来了

增加了很多新的东西,有看点的是,Linux确实要可以在Apple M1上面运行了,这应该是一个很大的新闻,如果有这么稳定的硬件支持,那对于Linux来说相当于又打下了一大片的江山。

其中关于Linux6.2的特性罗列如下

  • Nouveau 中早期的 NVIDIA RTX 30/Ampere GPU 支持

  • 更新了 Zstd 压缩代码

  • 其他 Btrfs 性能增强

  • Squashfs 文件系统的新挂载选项

  • 支持 Wi-Fi 7 和 800Gbps 网络的基础工作

  • exFAT 驱动程序中更快地创建文件/文件夹

  • RISC-V 对持久性内存设备的支持 

  • 英特尔 IFS 驱动程序现已稳定

  • Intel Alder Lake N/Raptor Lake P 适度节能

  • USB 4 连接唤醒/断开支持

  • 支持 ChromeOS 人体存在传感器 (HPS)

  • Raspberry Pi 4K @ 60Hz 显示支持

6.2结束后,也代表着6.3开始了,在6.3版本的合并中,Linus发针对一次提交发飙了,发飙的原因是因为有人提交代码竟然没有好好写commit

关于如何写好一个commit,之前有文章

你确定你会使用git commit?

如下链接:

https://lore.kernel.org/lkml/CAHk-=wgw++ccN-Pd1npZsBSDD3z6EGUSKsWuAEh5YC-TmfJAug@mail.gmail.com/

提交者是这样写的:

大意是说

——Linus,请把这些更新用在Linux v6.3-rc1上,涉及一些什么什么的特性,有一些围绕着虚拟子系统的其他补丁,但是这些补丁已经被其他人reviewed了。

看Linus是如何回复的:

Linus说,我不得不再强调一次,如果你不能清楚的说明一个提交的原因,那么这次提交就显得很粗暴。

之后提交者回复如下

之后,Linus还详细的解释了自己的观点

所以说,真正的大佬是超级耐心并且讲道理的,如果没有Linus,不吹,Linus被取代迟早的事。


   
  1. > >I 've said this before, and apparently I need to say this again: if you
  2. > >cannot be bothered to explain *WHY* a merge exists, then that merge is
  3. > >buggy garbage by definition.
  4. >
  5. > Okay, understood. This was a merge of the fixes for v6.2. I'll explain that more clearly in the log from now on. :)
  6. So I really want people to document their merges, not just so that I
  7. (and others) can see "oh, that's why it exists at all", but also
  8. because I want to make people think about their merges more in
  9. general.
  10. For example, one reason why people do these kinds of merges is because
  11. they are starting to do some new development for the next release, and
  12. that new development then depends on fixes or infrastructure that they
  13. had in another branch (like a "for-linus" branch in  case of fixes).
  14. So then they - mindlessly - just do a "git merge that-branch" and the
  15. end result looks very much like what you sent me.
  16. In a slightly better world, they then actually write an explanatory
  17. commit message for that merge, knowing that I ask for them, and the
  18. merge commit message ends up being exactly that kind of slightly odd
  19.    "Now I'm starting a new thing that depends on the fixes
  20.    I already sent upstream, so I'm merging that branch"
  21. Which while certainly better than no explanation at all sounds a bit
  22. odd, doesn 't it? Yeah, add a few details on just what you depend on
  23. and why, and it gets much better, but it's all going to be a bit
  24. hand-wavy about future work that you haven 't even written yet.
  25. And *that* will them maybe make you then go "Ahh, I'm doing things wrong ".
  26. Because the "nice git way " to do that kind of thing is to actually
  27. realize "oh, I 'm starting new work that depends on the fixes I already
  28. sent upstram, so I should just make a new topic branch and start at
  29. that point that I needed".
  30. And then - once you've done all the "new work" that depended on that
  31. state, only at *THAT* point do you merge the topic branch.
  32. And look - you have exactly the same commits: you have one (or more)
  33. normal commits that implement the new feature, and you have one merge
  34. commit, but notice how much easier it is to write the explanation for
  35. the merge when you do it *after* the work.
  36. Instead of having to waffle about "future work depends on this feature
  37. that was in another branch, so I'm merging this branch", your merge
  38. commit now makes *sense*. You 're not merging some old state in order
  39. to create new features, you are literally just merging the completed
  40. new feature.
  41. So *this* is one reason I want people to really think about, and
  42. explain, their merges. Because it may be that having to explain it
  43. makes you go "Oh, I'm doing this wrong ".
  44. Now, in your case, I don't actually think you needed that merge for
  45. any "future new work " at all. I think you just randomly did a merge to
  46. just get the same warning fixes that you had already sent me. So in
  47. this case, it smells like the merge was just entirely superfluous.
  48. Those kinds of superfluous merges can be ok - it's just annoying to
  49. have a development branch that still shows some artifact that you
  50. already fixed elsewhere.
  51. But they still need the explanation. And for that case, I want the
  52. explanation partly to make it clear that you really *thought* about
  53. it, and partly just so that I can see why you did it.
  54. Because we have a very real history where people did mindless daily
  55. back-merges like this "just because " with absolutely no rhyme or
  56. reason, just because they wanted to start each day with the most
  57. recent base, and it really gets very ugly. The development history can
  58. go from a DAG that actually visualizes the different development
  59. streams nicely to a spider-net maze of inexplicable merges very
  60. quickly.
  61.          Linus


转载:https://blog.csdn.net/weiqifa0/article/details/129210709
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场