Tux Machines

Do you waddle the waddle?

Other Sites

Internet Society

30 Years of Section 230: Why We Still Need It for a Safer Internet

This month marks the 30th anniversary of a section of United States law that has been called “the 26 words that created the Internet.” 

news

Git v2.43.0

posted by Roy Schestowitz on Nov 21, 2023

The latest feature release Git v2.43.0 is now available at the
usual places.  It is comprised of 464 non-merge commits since
v2.42.0, contributed by 80 people, 17 of which are new faces [*].

The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/
The following public repositories all have a copy of the 'v2.43.0' tag and the 'master' branch that the tag points at:
url = https://git.kernel.org/pub/scm/git/git url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://github.com/gitster/git
New contributors whose contributions weren't in v2.42.0 are as follows. Welcome to the Git development community!
Aditya Neelamraju, Alyssa Ross, Caleb Hill, Dorcas AnonoLitunya, Dragan Simic, Isoken June Ibizugbe, Jan Alexander Steffens (heftig), Javier Mora, ks1322 ks1322, Mark Ruvald Pedersen, Matthew McClain, Naomi Ibe, Romain Chossart, Tang Yuyi, Vipul Kumar, 王常新, and 谢致邦 (XIE Zhibang).
Returning contributors who helped this release are as follows. Thanks for your continued support.
Ævar Arnfjörð Bjarmason, Alexander Shopov, Andrei Rybak, Andy Koppe, Arkadii Yakovets, Bagas Sanjaya, Beat Bolli, brian m. carlson, Calvin Wan, Christian Couder, Christian Hesse, Derrick Stolee, Drew DeVault, Elijah Newren, Emily Shaffer, Emir SARI, Eric W. Biederman, Eric Wong, Evan Gates, Han Young, Hariom Verma, Jacob Abel, Jacob Stopak, Jason Hatton, Jean-Noël Avila, Jeff King, Johannes Schindelin, John Cai, Jordi Mas, Josh Soref, Josip Sokcevic, Junio C Hamano, Karthik Nayak, Kate Golovanova, Kousik Sanagavarapu, Kristoffer Haugsbakk, Linus Arver, Mark Levedahl, Martin Ågren, Martin Storsjö, M Hickford, Michael Strawbridge, Michal Suchanek, Oswald Buddenhagen, Patrick Steinhardt, Peter Krefting, Philippe Blain, Phillip Wood, Ralf Thielow, Randall S. Becker, René Scharfe, Robert Coup, Rubén Justo, Sergey Organov, Shuqi Liang, Stefan Haller, Štěpán Němec, Taylor Blau, Teng Long, Todd Zullinger, Victoria Dye, Wesley Schwengle, and Yi-Jyun Pan.
[*] We are counting not just the authorship contribution but issue reporting, mentoring, helping and reviewing that are recorded in the commit trailers.
----------------------------------------------------------------
Git v2.43 Release Notes =======================
Backward Compatibility Notes
* The "--rfc" option of "git format-patch" used to be a valid way to override an earlier "--subject-prefix=<something>" on the command line and replace it with "[RFC PATCH]", but from this release, it merely prefixes the string "RFC " in front of the given subject prefix. If you are negatively affected by this change, please use "--subject-prefix=PATCH --rfc" as a replacement.
* In Git 2.42, "git rev-list --stdin" learned to take non-revisions (like "--not") from the standard input, but the way such a "--not" was handled was quite confusing, which has been rethought. The updated rule is that "--not" given from the command line only affects revs given from the command line that comes but not revs read from the standard input, and "--not" read from the standard input affects revs given from the standard input and not revs given from the command line.
UI, Workflows & Features
* A message written in olden time prevented a branch from getting checked out, saying it is already checked out elsewhere. But these days, we treat a branch that is being bisected or rebased just like a branch that is checked out and protect it from getting modified with the same codepath. The message has been rephrased to say that the branch is "in use" to avoid confusion.
* Hourly and other schedules of "git maintenance" jobs are randomly distributed now.
* "git cmd -h" learned to signal which options can be negated by listing such options like "--[no-]opt".
* The way authentication related data other than passwords (e.g., oauth token and password expiration data) are stored in libsecret keyrings has been rethought.
* Update the libsecret and wincred credential helpers to correctly match which credential to erase; they erased the wrong entry in some cases.
* Git GUI updates.
* "git format-patch" learned a new "--description-file" option that lets cover letter description to be fed; this can be used on detached HEAD where there is no branch description available, and also can override the branch description if there is one.
* Use of the "--max-pack-size" option to allow multiple packfiles to be created is now supported even when we are sending unreachable objects to cruft packs.
* "git format-patch --rfc --subject-prefix=<foo>" used to ignore the "--subject-prefix" option and used "[RFC PATCH]"; now we will add "RFC" prefix to whatever subject prefix is specified.
* "git log --format" has been taught the %(decorate) placeholder for further customization over what the "--decorate" option offers.
* The default log message created by "git revert", when reverting a commit that records a revert, has been tweaked, to encourage people to describe complex "revert of revert of revert" situations better in their own words.
* The command-line completion support (in contrib/) learned to complete "git commit --trailer=" for possible trailer keys.
* "git update-index" learned the "--show-index-version" option to inspect the index format version used by the on-disk index file.
* "git diff" learned the "diff.statNameWidth" configuration variable, to give the default width for the name part in the "--stat" output.
* "git range-diff --notes=foo" compared "log --notes=foo --notes" of the two ranges, instead of using just the specified notes tree, which has been corrected to use only the specified notes tree.
* The command line completion script (in contrib/) can be told to complete aliases by including ": git <cmd> ;" in the alias to tell it that the alias should be completed in a similar way to how "git <cmd>" is completed. The parsing code for the alias has been loosened to allow ';' without an extra space before it.
* "git for-each-ref" and friends learned to apply mailmap to authorname and other fields in a more flexible way than using separate placeholder letters like %a[eElL] every time we want to come up with small variants.
* "git repack" machinery learned to pay attention to the "--filter=" option.
* "git repack" learned the "--max-cruft-size" option to prevent cruft packs from growing without bounds.
* "git merge-tree" learned to take strategy backend specific options via the "-X" option, like "git merge" does.
* "git log" and friends learned the "--dd" option that is a short-hand for "--diff-merges=first-parent -p".
* The attribute subsystem learned to honor the "attr.tree" configuration variable that specifies which tree to read the .gitattributes files from.
* "git merge-file" learns a mode to read three variants of the contents to be merged from blob objects.
Performance, Internal Implementation, Development Support etc.
* "git check-attr" has been taught to work better with sparse-index.
* It may be tempting to leave the help text NULL for a command line option that is either hidden or too obvious, but "git subcmd -h" and "git subcmd --help-all" would have segfaulted if done so. Now the help text is truly optional.
* Tests that are known to pass with LSan are now marked as such.
* Flaky "git p4" tests, as well as "git svn" tests, are now skipped in the (rather expensive) sanitizer CI job.
* Tests with LSan from time to time seem to emit harmless messages that make our tests unnecessarily flaky; we work around it by filtering the uninteresting output.
* Unused parameters to functions are marked as such, and/or removed, in order to bring us closer to "-Wunused-parameter" clean.
* The code to keep track of existing packs in the repository while repacking has been refactored.
* The "streaming" interface used for bulk-checkin codepath has been narrowed to take only blob objects for now, with no real loss of functionality.
* GitHub CI workflow has learned to trigger Coverity check.
* Test coverage for trailers has been improved.
* The code to iterate over loose references has been optimized to reduce the number of lstat() system calls.
* The codepaths that read "chunk" formatted files have been corrected to pay attention to the chunk size and notice broken files.
* Replace macos-12 used at GitHub CI with macos-13. (merge 682a868f67 js/ci-use-macos-13 later to maint).
Fixes since v2.42 -----------------
* Overly long label names used in the sequencer machinery are now chopped to fit under filesystem limitation.
* Scalar updates.
* Tweak GitHub Actions CI so that pushing the same commit to multiple branch tips at the same time will not waste building and testing the same thing twice.
* The commit-graph verification code that detects a mixture of zero and non-zero generation numbers has been updated.
* "git diff -w --exit-code" with various options did not work correctly, which has been corrected.
* The "transfer.unpackLimit" configuration variable ought to be used as a fallback, but overrode the more specific "fetch.unpackLimit" and "receive.unpackLimit" configuration variables by mistake, which has been corrected.
* The use of API between two calls to require_clean_work_tree() from the sequencer code has been cleaned up for consistency.
* "git diff --no-such-option" and other corner cases around the exit status of the "diff" command have been corrected.
* "git for-each-ref --sort='contents:size'" sorted the refs according to size numerically, giving a ref that points at a blob twelve-byte (12) long before showing a blob hundred-byte (100) long, which has been corrected.
* We now limit the depth of the tree objects and maximum length of pathnames recorded in tree objects. (merge 4d5693ba05 jk/tree-name-and-depth-limit later to maint).
* Various fixes to the behavior of "rebase -i", when the command got interrupted by conflicting changes, have been made.
* References from a description of the `--patch` option in various manual pages have been simplified and improved.
* "git grep -e A --no-or -e B" is accepted, even though the negation of the "--or" option did not mean anything, which has been tightened.
* The completion script (in contrib/) has been taught to treat the "-t" option to "git checkout" and "git switch" just like the "--track" option, to complete remote-tracking branches.
* "git diff --no-index -R <(one) <(two)" did not work correctly, which has been corrected.
* "git maintenance" timers' implementation has been updated, based on systemd timers, to work with WSL.
* "git diff --cached" codepath did not fill the necessary stat information for a file when fsmonitor knows it is clean and ended up behaving as if it were not clean, which has been corrected.
* How "alias.foo = : git cmd ; aliased-command-string" should be spelled with necessary whitespace around punctuation marks to work has been more clearly documented (but this will be moot with newer versions of Git where the parsing rules have been improved).
* HTTP Header redaction code has been adjusted for a newer version of cURL library that shows its traces differently from earlier versions.
* An error message given by "git send-email", when given a malformed address, did not show the offending address, which has been corrected.
* UBSan options were not propagated through the test framework to git run via the httpd, unlike ASan options, which has been corrected.
* "checkout --merge -- path" and "update-index --unresolve path" did not resurrect conflicted state that was resolved to remove path, but now they do. (merge 5bdedac3c7 jc/unresolve-removal later to maint).
* The display width table for unicode characters has been updated for Unicode 15.1 (merge 872976c37e bb/unicode-width-table-15 later to maint).
* Update mailmap entry for Derrick. (merge 6e5457d8c7 ds/mailmap-entry-update later to maint).
* In the ".gitmodules" files, submodules are keyed by their names, and the path to the submodule whose name is $name is specified by the submodule.$name.path variable. There were a few codepaths that mixed the name and path up when consulting the submodule database, which have been corrected. It took long for these bugs to be found as the name of a submodule initially is the same as its path, and the problem does not surface until it is moved to a different path, which apparently happens very rarely.
* "git diff --merge-base X other args..." insisted that X must be a commit and errored out when given an annotated tag that peels to a commit, but we only need it to be a committish. This has been corrected. (merge 4adceb5a29 ar/diff-index-merge-base-fix later to maint).
* "git merge-tree" used to segfault when the "--attr-source" option is used, which has been corrected. (merge e95bafc52f jc/merge-ort-attr-index-fix later to maint).
* Unlike "git log --pretty=%D", "git log --pretty="%(decorate)" did not auto-initialize the decoration subsystem, which has been corrected.
* Feeding "git stash store" with a random commit that was not created by "git stash create" now errors out. (merge d9b6634589 jc/fail-stash-to-store-non-stash later to maint).
* The index file has room only for the lower 32-bit of the file size in the cached stat information, which means cached stat information will have 0 in its sd_size member for a file whose size is a multiple of 4GiB. This is mistaken for a racily clean path. Avoid it by storing a bogus sd_size value instead for such files. (merge 5143ac07b1 bc/racy-4gb-files later to maint).
* "git p4" tried to store symlinks to LFS when told, but has been fixed not to do so, because it does not make sense. (merge 10c89a02b0 mm/p4-symlink-with-lfs later to maint).
* The codepath to handle recipient addresses `git send-email --compose` learns from the user was completely broken, which has been corrected. (merge 3ec6167567 jk/send-email-fix-addresses-from-composed-messages later to maint).
* "cd sub && git grep -f patterns" tried to read "patterns" file at the top level of the working tree; it has been corrected to read "sub/patterns" instead.
* "git reflog expire --single-worktree" has been broken for the past 20 months or so, which has been corrected.
* "git send-email" did not have certain pieces of data computed yet when it tried to validate the outgoing messages and its recipient addresses, which has been sorted out.
* "git bugreport" learned to complain when it received a command line argument that it will not use.
* The codepath to traverse the commit-graph learned to notice that a commit is missing (e.g., corrupt repository lost an object), even though it knows something about the commit (like its parents) from what is in commit-graph. (merge 7a5d604443 ps/do-not-trust-commit-graph-blindly-for-existence later to maint).
* "git rev-list --missing" did not work for missing commit objects, which has been corrected.
* "git rev-list --unpacked --objects" failed to exclude packed non-commit objects, which has been corrected. (merge 7b3c8e9f38 tb/rev-list-unpacked-fix later to maint).
* "To dereference" and "to peel" were sometimes used in in-code comments and documentation but without description in the glossary. (merge 893dce2ffb vd/glossary-dereference-peel later to maint).
* Other code cleanup, docfix, build fix, etc. (merge c2c349a15c xz/commit-title-soft-limit-doc later to maint). (merge 1bd809938a tb/format-pack-doc-update later to maint). (merge 8f81532599 an/clang-format-typofix later to maint). (merge 3ca86adc2d la/strvec-header-fix later to maint). (merge 6789275d37 jc/test-i18ngrep later to maint). (merge 9972cd6004 ps/leakfixes later to maint). (merge 46edab516b tz/send-email-helpfix later to maint).

Read on

Other Recent Tux Machines' Posts

Why OOXML is not a standard format for office documents
Unfortunately, I keep reading about open-source software advocates who happily use Microsoft’s proprietary DOCX, XLSX and PPTX formats...
Linux Kernel 6.19 Officially Released, This Is What’s New
Linux kernel 6.19 is now available for download, as announced today by Linus Torvalds himself, featuring enhanced hardware support through new and updated drivers, improvements to file systems and networking, and more.
NetBSD 11.0 RC1 available!
upcoming 11.0 release
Transmission 4.1 Open-Source BitTorrent Client Released as a Massive Update
Transmission 4.1 has been released today as a major update to this open-source, free, and cross-platform BitTorrent client that features GTK and Qt-based interfaces, a headless daemon, and a web UI.
 
Today in Techrights
Some of the latest articles
Android Leftovers
Google says 1 billion Android users need to buy a new phone now
Linux Mint isn’t just for beginners—and this "hidden" Cinnamon feature proves it
Linux Mint is a popular distro for Linux newcomers
Free and Open Source Software
This is free and open source software
Milis Linux – independent distribution
Milis Linux Project is based on open source and national software development principles and is ideally acquainted with increasing the added value of our country in IT
Kdenlive 25.12.2 released
The second maintenance release of the 25.12 series is with the usual batch of stability fixes and workflow improvements
This Lesser-Known Nextcloud Alternative's Latest Release Makes it More Suitable for Small Businesses
The open source groupware platform partners with Collabora to provide a paid feature for free
Ghostty vs Kitty: Which Modern Terminal is the Best for Linux Users?
Two of the most popular modern terminal emulators for pro Linux users
Free, Libre, and Open Source Software and Standards
FOSS and more
GNU/Linux Leftovers
GNU/Linux and a little more
Hardware: Raspberry P and Oldies
Some devices, old machines
GNU/Linux Applications: GRUB, lsusb, and Editors
Applications in the zeitgeist
GNU Binutils 2.46 Adds Support for AMD Zen6 CPUs, SFrame v3, and More
The GNU Binutils project announced today the release and general availability of GNU Binutils 2.46 as the latest stable version of this collection of binary tools for GNU/Linux operating systems.
A Move to Pure Blog
from Jekyll to Pure Blog
Programming Leftovers
Development picks
Barry Kauler on EasyOS Development: ALSA, SpaceFM, and More
Barry Kauler's latest
today's howtos
more howtos
Audiocasts/Shows: This Week in Linux and LINUX Unplugged
2 new episodes
GNU Linux-Libre 6.19 Kernel Is Now Available for Software Freedom Lovers
The GNU Linux-libre project announced today the release and general availability of the GNU Linux-libre 6.19 kernel for those who seek 100% freedom for their GNU/Linux computers and software freedom lovers.
pearOS 26.2 Released with Liquid Gel Design, Wayland Session, and More
pearOS 26.2 has been released today as a major update to this up-and-coming GNU/Linux distribution featuring the KDE Plasma desktop environment and based on the popular Arch Linux distribution.
Android Leftovers
LineageOS just brought two of the best things about Pixels to custom ROMs
6 tips for using Linux without touching the command line
When you read about Linux, you probably see a lot of talk about commands to use in the terminal
I keep "tiny" Linux distros on my keychain: Here are 5 reasons you should too
Operating systems are complex and large pieces of software, and the same goes for Linux systems
Free and Open Source Software
This is free and open source software
Noid Linux – Void-based minimalist Linux distribution
Noid Linux (Naz’s Void Linux-based iso) is a personal customization of Void Linux
Planet KDE: Beating an old, but not dead horse: what to do with the Oxygen and Air themes?
One of them, called Oxygen, had reigned supreme in KDE Plasma
Tips: Sharing files on home network
The Warpinator application runs in most environments; it can be installed on most Linux distributions with native packages or using Flatpak
Recent Valnet Articles About GNU/Linux and More
3 assorted links
today's howtos
Instructionals/Technical posts, recent picks
Proprietary Software Depends on Free Software and "TuxMate is Like Ninite but for Linux"
Applications news
Valnet Articles Regarding Proxmox, Homelabs, and "Don't Try Self-hosting on Windows"
4 recent articles
Richard Stallman Exposes the AI Lie; He Calls It “Pretend Intelligence”
The 2-hour Stallman’s speech most provocative claim: LLMs don’t know anything, they just generate text. Calling them intelligent is harmful to society.
XDA (Valnet) on NixOS, Minimalist Distributions, Arch Linux, and Switching From Windows top GNU/Linux
4 recent articles
Today in Techrights
Some of the latest articles
9to5Linux Weekly Roundup: February 8th, 2026
The 278th installment of the 9to5Linux Weekly Roundup is here for the week ending February 8th, 2026.
Linux 7.0 Kernel Confirmed by Linus Torvalds, Expected in Mid-April 2026
With the release of Linux kernel 6.19 earlier today, Linus Torvalds confirmed that the next major kernel series will have a version number bump as Linux 7.0 rather than Linux 6.20.
Free, Libre, and Open Source Software and Standards
mostly FOSS picks from recent days
GNU/Linux and Hardware Leftovers
mostly GNU/Linux news from last week or this weekend
This Week in GNOME, GNOME Foundation Update, and More GNOME Updates/Takes
GNOME leftovers
Programming Leftovers
Development picks
Videos/Shows: Going Linux and New Features in LibreOffice 26.2
only a pair for picks for today
KDE: FOSDEM 2026, KDE Docs, and Kdenlive
Some KDE news
Games: SuperTux 0.7.0 Beta 2, GOG, and More
handful of articles
Applications: Thermalright's Software, Censor, and PairUX
Application or software picks
today's howtos
Instructionals/Technical posts
GCompris 26.0 Released with 2 New Activities & Teachers Tool
GCompris, KDE’s educational software suite, released new 26.0 version few days ago
Issue 304 of Linux Magazine
Out with partial paywall
GNU/Linux Leftovers
GNU/Linux distros and more
Open Hardware/Modding: Raspberry Pi, Old Systems, and DIY
hardware projects and more
Linux Graphics and Games
Games and more
GNU G-Golf
G-Golf is a tool to develop fast and feature-rich graphical applications
I broke my Linux system on purpose and recovered it without reinstalling
One of the biggest reasons people hesitate to use Linux has nothing to do with terminals
January brought major updates to these 6 Linux distros
With so many Linux distros out there, and each maintaining unique and not-always-consistent release cycles
5 open-source apps I install immediately after installing Linux
I finally moved to Linux after eight long years from Windows
4 reasons I stopped using Ubuntu and don't miss it
I started my Linux journey back around 2001 with Mandrake Linux
Free and Open Source Software
This is free and open source software
Beserk Arch – bleeding-edge, security-centric Arch-based Linux distribution
Berserk Arch is an Arch Linux-based, rolling-release distribution designed primarily for power users
Busy months in KDE Linux
It’s been few months since I last blogged about KDE Linux, KDE’s operating system of the future
This Year Gemini Protocol Will Turn Four for Us [original]
We moved to our own SSG back in 2022
The Media Isn't Dying, It's Being Assassinated (Divestment), We Need to Fill the Gap [original]
GNU/Linux in its original form is a grassroots system. To keep is that way we need community-driven, community-centric, community-focused news.
22 Years of Curating GNU/Linux Links [original]
We've not changed much since 2004
Today in Techrights
Some of the latest articles
"Work has started" on native Linux support for GOG Galaxy, co-founder says they’re "a big fan of Linux" - PC Guide
DRM-free and open-source gaming on GOG