最近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,之前有文章
如下链接:
https://lore.kernel.org/lkml/CAHk-=wgw++ccN-Pd1npZsBSDD3z6EGUSKsWuAEh5YC-TmfJAug@mail.gmail.com/
提交者是这样写的:
大意是说
——Linus,请把这些更新用在Linux v6.3-rc1上,涉及一些什么什么的特性,有一些围绕着虚拟子系统的其他补丁,但是这些补丁已经被其他人reviewed了。

看Linus是如何回复的:

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

之后,Linus还详细的解释了自己的观点
所以说,真正的大佬是超级耐心并且讲道理的,如果没有Linus,不吹,Linus被取代迟早的事。
   
    - 
     
      
     
     
      
       > >I
       've said this before, and apparently I need to say this again: if you
      
     
- 
     
      
     
     
      
       > >cannot be bothered to explain *WHY* a merge exists, then that merge is
      
     
- 
     
      
     
     
      
       > >buggy garbage by definition.
      
     
- 
     
      
     
     
      
       >
      
     
- 
     
      
     
     
      
       > Okay, understood. This was a merge of the fixes for v6.2. I'll explain that more clearly in the log from now on. :)
      
     
- 
     
      
     
     
       
      
     
- 
     
      
     
     
      
       So I really want people to document their merges, not just so that I
      
     
- 
     
      
     
     
      
       (and others) can see 
       "oh, that's why it exists at all", but also
      
     
- 
     
      
     
     
      
       because I want to 
       make people think about their merges more in
      
     
- 
     
      
     
     
      
       general.
      
     
- 
     
      
     
     
       
      
     
- 
     
      
     
     
      
       For example, one reason why people do these kinds of merges is because
      
     
- 
     
      
     
     
      
       they are starting to do some 
       new development 
       for the next release, and
      
     
- 
     
      
     
     
      
       that 
       new development then depends on fixes or infrastructure that they
      
     
- 
     
      
     
     
      
       had in another branch (like a 
       "for-linus" branch in 
       case of fixes).
      
     
- 
     
      
     
     
       
      
     
- 
     
      
     
     
      
       So then they - mindlessly - just do a 
       "git merge that-branch" and the
      
     
- 
     
      
     
     
      
       end result looks very much like what you sent me.
      
     
- 
     
      
     
     
       
      
     
- 
     
      
     
     
      
       In a slightly better world, they then actually write an explanatory
      
     
- 
     
      
     
     
      
       commit message 
       for that merge, knowing that I ask 
       for them, and the
      
     
- 
     
      
     
     
      
       merge commit message ends up being exactly that kind of slightly odd
      
     
- 
     
      
     
     
       
      
     
- 
     
      
     
     
      
         
       "Now I'm starting a new thing that depends on the fixes
      
     
- 
     
      
     
     
      
          I already sent upstream, so I'm merging that branch"
      
     
- 
     
      
     
     
       
      
     
- 
     
      
     
     
      
       Which while certainly better than no explanation at all sounds a bit
      
     
- 
     
      
     
     
      
       odd, doesn
       't it? Yeah, add a few details on just what you depend on
      
     
- 
     
      
     
     
      
       and why, and it gets much better, but it's all going to be a bit
      
     
- 
     
      
     
     
      
       hand-wavy about future work that you haven
       't even written yet.
      
     
- 
     
      
     
     
      
       
      
     
- 
     
      
     
     
      
       And *that* will them maybe make you then go "Ahh, I'm doing things wrong
       ".
      
     
- 
     
      
     
     
      
       
      
     
- 
     
      
     
     
      
       Because the "nice git way
       " to do that kind of thing is to actually
      
     
- 
     
      
     
     
      
       realize "oh, I
       'm starting new work that depends on the fixes I already
      
     
- 
     
      
     
     
      
       sent upstram, so I should just make a new topic branch and start at
      
     
- 
     
      
     
     
      
       that point that I needed".
      
     
- 
     
      
     
     
      
       
      
     
- 
     
      
     
     
      
       And then - once you've done all the 
       "new work" that depended on that
      
     
- 
     
      
     
     
      
       state, only at *THAT* point do you merge the topic branch.
      
     
- 
     
      
     
     
       
      
     
- 
     
      
     
     
      
       And look - you have exactly the same commits: you have one (or more)
      
     
- 
     
      
     
     
      
       normal commits that implement the 
       new feature, and you have one merge
      
     
- 
     
      
     
     
      
       commit, but notice how much easier it is to write the explanation 
       for
      
     
- 
     
      
     
     
      
       the merge when you do it *after* the work.
      
     
- 
     
      
     
     
       
      
     
- 
     
      
     
     
      
       Instead of having to waffle about 
       "future work depends on this feature
      
     
- 
     
      
     
     
      
       that was in another branch, so I'm merging this branch", your merge
      
     
- 
     
      
     
     
      
       commit now makes *sense*. You
       're not merging some old state in order
      
     
- 
     
      
     
     
      
       to create new features, you are literally just merging the completed
      
     
- 
     
      
     
     
      
       new feature.
      
     
- 
     
      
     
     
      
       
      
     
- 
     
      
     
     
      
       So *this* is one reason I want people to really think about, and
      
     
- 
     
      
     
     
      
       explain, their merges. Because it may be that having to explain it
      
     
- 
     
      
     
     
      
       makes you go "Oh, I'm doing this wrong
       ".
      
     
- 
     
      
     
     
      
       
      
     
- 
     
      
     
     
      
       Now, in your case, I don't actually think you needed that merge for
      
     
- 
     
      
     
     
      
       any "future 
       new work
       " at all. I think you just randomly did a merge to
      
     
- 
     
      
     
     
      
       just get the same warning fixes that you had already sent me. So in
      
     
- 
     
      
     
     
      
       this case, it smells like the merge was just entirely superfluous.
      
     
- 
     
      
     
     
      
       
      
     
- 
     
      
     
     
      
       Those kinds of superfluous merges can be ok - it's just annoying to
      
     
- 
     
      
     
     
      
       have a development branch that still shows some artifact that you
      
     
- 
     
      
     
     
      
       already fixed elsewhere.
      
     
- 
     
      
     
     
      
       
      
     
- 
     
      
     
     
      
       But they still need the explanation. And for that case, I want the
      
     
- 
     
      
     
     
      
       explanation partly to make it clear that you really *thought* about
      
     
- 
     
      
     
     
      
       it, and partly just so that I can see why you did it.
      
     
- 
     
      
     
     
      
       
      
     
- 
     
      
     
     
      
       Because we have a very real history where people did mindless daily
      
     
- 
     
      
     
     
      
       back-merges like this "just because
       " with absolutely no rhyme or
      
     
- 
     
      
     
     
      
       reason, just because they wanted to start each day with the most
      
     
- 
     
      
     
     
      
       recent base, and it really gets very ugly. The development history can
      
     
- 
     
      
     
     
      
       go from a DAG that actually visualizes the different development
      
     
- 
     
      
     
     
      
       streams nicely to a spider-net maze of inexplicable merges very
      
     
- 
     
      
     
     
      
       quickly.
      
     
- 
     
      
     
     
      
       
      
     
- 
     
      
     
     
      
                Linus
      
     
  


转载:https://blog.csdn.net/weiqifa0/article/details/129210709
 
					