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 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 pull request, saying: "Current version works with normal/compressed/sparse files and supports acl, NTFS journal replaying."
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.
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," he said.
Second, he 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.
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, 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.
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."
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.
- Tachyum's Prodigy emulator achieves first boot, runs Linux and says 'hello, world'
- When you finish celebrating Linux turning 30, try new Linux 5.14, says Linus Torvalds
- 'Apps for GNOME' site aims to improve discovery of the project's best applications
- 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 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 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. ®