News: 1630931473

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

GitHub merges 'useless garbage' says Linus Torvalds as new NTFS support added to Linux kernel 5.15

(2021/09/06)


Linus Torvalds will pull Paragon Software's NTFS driver into the 5.15 kernel source – but he complained about the use of a GitHub merge in the submission, saying that GitHub "creates absolutely useless garbage merges."

Early last month Torvalds gave Paragon Software a [1]nudge that it really should submit a pull request – an actual submission of code to be merged into the kernel source – in order for its read-write NTFS driver to be included in the forthcoming 5.15 release, for which the merge window is currently open. NTFS is the native Windows file system and Paragon's implementation will improve interoperability, versus the existing driver which has limited write support.

On Friday Paragon duly submitted its [2]pull request , saying: "Current version works with normal/compressed/sparse files and supports acl, NTFS journal replaying."

[3]

However, the company is still getting to grips with the submission process and Torvalds had several comments to make, intended to improve future pull requests.

[4]

[5]

First, he said the pull request should have been signed. "In a perfect world, it would be a PGP signature that I can trace directly to you through the chain of trust, but I've never actually required that," [6]he said .

Second, he [7]noted that the code in the pull request included merge commits done with the GitHub web user interface. "That's another of those things that I *really* don't want to see – github creates absolutely useless garbage merges, and you should never ever use the github interfaces to merge anything," he said.

[8]

He added: "[G]ithub is a perfectly fine hosting site, and it does a number of other things well too, but merges is not one of those things."

Torvalds has complained about aspects of GitHub before, [9]saying in 2012 : "I don't do github pull requests. github throws away all the relevant information, like having even a valid email address for the person asking me to pull. The diffstat is also deficient and useless."

Note that the git request-pull command is different from the GitHub pull request feature. The ensuing forthright thread has more information on the subject.

[10]

Third, Paragon's repository has commit messages which lack information, like "Merge branch 'torvalds:master' into master."

Torvalds said that "Linux kernel merges need to be done *properly*." He added: "That means proper commit messages with information about what is being merged and *why* you merge something. But it also means proper authorship and committer information etc. All of which github entirely screws up."

[11]

Don't do this: A merge using the GitHub user interface

The pull request was nevertheless merged. "The initial pull often has a few oddities and I'll accept them now, but for continued development you need to do things properly," said Torvalds.

[12]Tachyum's Prodigy emulator achieves first boot, runs Linux and says 'hello, world'

[13]When you finish celebrating Linux turning 30, try new Linux 5.14, says Linus Torvalds

[14]'Apps for GNOME' site aims to improve discovery of the project's best applications

[15]30 years of Linux: OS was successful because of how it was licensed, says Red Hat

An example of a well-commented change came from Torvalds yesterday, when he [16]amended the Makefile used for compiling the kernel to "enable '-Werror' by default for all kernel builds … but make it a config option so that broken environments can disable it when required."

The [17]meaning of -Werror is "Make all warnings into errors," requiring stricter discipline for code that would otherwise compile but with warnings about suboptimal code.

Torvalds added that "we… will disable specific over-eager warnings as required, if we can't fix them."

"Hopefully this will mean that I get fewer pull requests that have new warnings that were not noticed by various automation we have in place… Knock wood," he said. ®

Get our [18]Tech Resources



[1] https://www.theregister.com/2021/08/02/paragon_ntfs_linux_kernel/

[2] https://lore.kernel.org/lkml/aa4aa155-b9b2-9099-b7a2-349d8d9d8fbd@paragon-software.com/

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YTY7PDgWqjzWbQ3A6hpVDQAAAAg&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YTY7PDgWqjzWbQ3A6hpVDQAAAAg&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YTY7PDgWqjzWbQ3A6hpVDQAAAAg&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[6] https://lore.kernel.org/lkml/CAHk-=whFAkqwGSNXqeN4KfNwXeCzp9-uoy69_mLExEydTajvGw@mail.gmail.com/

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

[8] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YTY7PDgWqjzWbQ3A6hpVDQAAAAg&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[9] https://github.com/torvalds/linux/pull/17#issuecomment-5654674

[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YTY7PDgWqjzWbQ3A6hpVDQAAAAg&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[11] https://regmedia.co.uk/2021/09/06/paragon-merge.png

[12] https://www.theregister.com/2021/09/01/tachyums_prodigy_emulator_boots/

[13] https://www.theregister.com/2021/08/30/linux_5_14/

[14] https://www.theregister.com/2021/08/27/apps_for_gnome/

[15] https://www.theregister.com/2021/08/25/30_years_of_linux_red_hat/

[16] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3fe617ccafd6f5bb33c2391d6f4eeb41c1fd0151

[17] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Werror

[18] https://whitepapers.theregister.com/



Filippo

In fairness, the git command-line interface is... not exactly easy to learn. Of course, this is a very important project, and needs to be done properly, but I feel their pain.

https://xkcd.com/1597/

Yet Another Anonymous coward

Git errors unclear?

What's unclear about 'foxtrot merges not allowed on forward laterals when Mortimer's rule is in use and the user isn't in nidd'?

Samantha has to step out now

Anonymous Coward

Some git is trying to pull and she's been requested to submit.

Warm Braw

the git command-line interface is... not exactly easy to learn

If only we could identify who was responsible...

However, there's quite a serious point here. Given the [1]shortage of Linux maintainers it would presumably help if otherwise competent developers aren't being avoidably tripped up.

[1] https://www.theregister.com/2020/06/30/hard_to_find_linux_maintainers_says_torvalds/

Vometia has insomnia. Again.

I first encountered git thanks to FreeBSD migrating away from svn shortly after I'd endured yet another fight with systemd; and unfortunately felt quite a sense of deja vu. I've scripted what I need it to do and feel disinclined to poke it with a stick.

xkcd

MacroRodent

That xkcd captures very well my git experience. Initially I raged at it, but have now grown numb and apathetic. I just have a file "git-tricks.txt" from which copy_paste commands, and if that does not help, rm -rf and git clone to start over...

Add Gerrit to that for extra pain...

Re: xkcd

Def

I suffer git at work, but use Perforce at home for my own projects. I will never let git anywhere near my code.

chuBb.

Id say the GIT CLI is no harder to learn than any other CLI, what makes git tricky to understand is its choice of nomenclature which activly fights the intent of the command.

While there may well be historical reasons for "pull request", but lets face it the vast vast majority of git users use a hosted repository, so any attempts at names that allow the ambiguity of the distributed aspect of git is pointless these day, it would be much better named "Merge Request" or "Merge Review" in my opinion, as that is effectively how its always been used in any project I've been involved in.

Rebase is another crap name used by GIT, despite having used git for the best part of 20 years i would struggle to explain its function in detail without some form of reference, "magic reset update merge keep working copy changes" command might be better as at least it conveys some of what rebase does, even if it would be a bugger to type on cli (but thats what the tab key is for in your terminal of choice)

Brewster's Angle Grinder

A bit like the XKCD, somebody has to link to [1]rebase considered harmful.

[1] https://fossil-scm.org/home/doc/trunk/www/rebaseharm.md

Note that the git request-pull command is different from the GitHub pull request feature

Howard Sway

Of course! One is requesting a pull and the other is pulling a request : the second one is not the request of a pull, nor is the first the pull of a request, which should be obvious to anyone. However, if you disagree you can always submit a pull request to request an update to request-pull.

Re: Note that the git request-pull command is different from the GitHub pull request feature

Starkoman

“Clear as an unmuddied lake, Mr. Deltoid”, said Alex.

All very fine.....love it when the anoraks get excited about stuff like "git"........

Anonymous Coward

......but my problem is MUCH simpler.........

*

Has the next kernel update from RedHat actually been tested by anyone? I'm currently FED UP with having to worry about whether 5.13.13 might be a problem, since my (multiple) machines are all up to date on 5.13.12. It wouldn't be so bad......except for the treadmill of having to deal with this EVERY WEEK!!!

*

From 1982 to 1985 (i.e. more than three years), CP/M-80 was stable at version 2.2.

*

From 1986 to 1992 (i.e. more than five years), MS-DOS was stable at version 3.3.

*

From 2003 to 2005 (i.e. more than two years), RedHat version 9 (retail) was stable.

*

Today.......EVERY WEEK THERE'S AN UPDATE.................................................

*

Am I missing anything here?

*

Signed: NotAnArorak (just an ordinary person)

Re: All very fine.....love it when the anoraks get excited about stuff like "git"........

Adrian 4

If you don't want constant updates the solution is simple : don't follow a dev track which is there specifically to allow frequent, poorly tested updates.

From your examples, I would suggest you want the releases marked 'LTS' or long-term-stable.

Try Debian. they're exceptionally careful about what goes in, and you won't suffer much harm if you miss out every other release for even longer life.

Re: From 1982 to 1992 there was no Internet to speak of*

Pascal Monett

So yeah, things were a lot more stable when the only way to hack a computer was to sit in front of it.

* - yeah, I know, the Internet existed in 1992, but the number of people who actually had access to it was pathetic and the hacking culture was yet to be invented on the scale it has become today

"I've never actually required that"

Pascal Monett

May I humbly submit to the overlord of the One True OS Kernel that it might, just maybe, be an idea to think about doing so, given all the grief that is currently being caused by state-level groups who are actively trying to subvert entire supply chains ?

Not that I would be so bold as to tell The Great One how to manage his pet project that powers the Internet, worldwide communications, space probes and practically everything that is not a desktop PC or a laptop.

But it might be worth considering . . .

"Arthur felt at a bit of a loss. There was a whole Galaxy
of stuff out there for him, and he wondered if it was
churlish of him to complain to himself that it lacked just
two things: the world he was born on and the woman he
loved. "