Tux Machines

Do you waddle the waddle?

Other Sites

9to5Linux

First Look at Mageia 10 – Alpha Release Now Available for Public Testing

Mageia 10 is planned for release in April 2026, which will mark exactly three years from the release of Mageia 9. It’s powered by the long-term supported Linux 6.12 LTS kernel series and ships with the KDE Plasma 6.5, GNOME 49, and Xfce 4.20 desktop environments.

Budgie 10.10 Desktop Environment Released as the First Wayland-Only Version

Work on Budgie 10.10 kicked off more than a year ago, and many of Budgie’s components have already been ported to Wayland during this time. As a result, Budgie 10.10 is here as the first release of this modern desktop environment to mark the official migration from X11 to Wayland.

KDE Plasma 6.6 Desktop Is Coming on February 17th, Here’s What to Expect

KDE Plasma 6.6 promises a new “Plasma Login Manager” display manager that could replace existing login managers like SDDM in popular distributions shipping with a KDE Plasma edition, such as the upcoming Fedora Linux 44, but most probably also in CachyOS, EndeavourOS, and other distros.

Debian 13.3 “Trixie” Released with 108 Bug Fixes and 37 Security Updates

Coming almost two months after Debian 13.2, the Debian 13.3 point release is here to provide the community with an updated installation media targeting those who want to deploy the latest Debian 13 “Trixie” operating system series on new hardware or those who had issues with the previous ISO releases.

Arch Linux-Based ArchBang Linux Distro Introduces New Application Launcher

Synced with the upstream Arch Linux repositories, the new ArchBang Linux release (v1001) introduces wmenu, a dynamic menu for Wayland and wlroots-based Wayland compositors like Labwc, as a drop-in replacement for the dmenu application launcher.

KDE Frameworks 6.22 Fixes Multiple Clipboard-Related Issues on Wayland

KDE Frameworks 6.22 is here to fix multiple clipboard-related issues on Wayland, including an issue that caused the current copied data from the Klipper clipboard app to be lost when closing the pop-up without selecting anything, and an issue where the Spectacle screenshot tool failed to copy screenshots to the clipboard.

LinuxGizmos.com

ASUS UGen300 USB AI Accelerator targets edge inference with Hailo-10H

The UGen300 is built around the Hailo Hailo-10H processor, which ASUS rates at up to 40 TOPS (INT4) of inference performance. The accelerator integrates 8 GB of LPDDR4 memory, allowing models to run locally on the device without consuming host system memory or CPU resources.

Linux Box Dev Edition brings Armbian Linux with Home Assistant support

THIRDREALITY lists a quad-core processor, 2 GB of RAM, and 8 GB of onboard storage, along with integrated wireless connectivity including dual-band Wi-Fi (2.4 GHz and 5 GHz), Bluetooth/BLE, Thread, and standard Zigbee.

Git v2.38.0

posted by Roy Schestowitz on Oct 03, 2022

The latest feature release Git v2.38.0 is now available at the
usual places.  It is comprised of 699 non-merge commits since
v2.37.0, contributed by 92 people, 24 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.38.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.37.0 are as follows. Welcome to the Git development community!
Andrew Olsen, Anthony Delannoy, Carlos López, Celeste Liu, Cleber Rosa, David Plumpton, Elijah Conners, Eric DeCosta, Goss Geppert, Hubert Bossot, Ilya K, Ingy dot Net, Jacob Stopak, Julien Rouhaud, Kilian Kilger, Lana Deere, Manuel Boni, Matthew Klein, Miaoqian Lin, Moritz Baumann, Pavel Rappo, Pierre Garnier, Richard Oliver, and Xavier Morel.
Returning contributors who helped this release are as follows. Thanks for your continued support.
Abhradeep Chakraborty, Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie, Arthur Milchior, Bagas Sanjaya, brian m. carlson, Calvin Wan, Carlo Marcelo Arenas Belón, Christian Couder, Christoph Reiter, Derrick Stolee, Dimitriy Ryazantcev, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Emir SARI, Eric Sunshine, Fangyi Zhou, Felipe Contreras, Fernando Ramos, Glen Choo, Han Xin, Hariom Verma, Jacob Keller, Jaydeep Das, Jean-Noël Avila, Jeff King, Jiang Xin, Joey Hess, Johannes Schindelin, John Cai, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano, Justin Donnelly, Kyle Zhao, Lessley Dennington, Li Linchao, Linus Torvalds, Martin Ågren, Matheus Tavares, Matthew John Cheetham, Michael J Gruber, Øystein Walle, Peter Krefting, Philip Oakley, Philippe Blain, Phillip Szelat, Phillip Wood, Ralf Thielow, Randall S. Becker, Renato Botelho, René Scharfe, Shaoxuan Yuan, Siddharth Asthana, SZEDER Gábor, Tao Klerks, Taylor Blau, Teng Long, Todd Zullinger, Torsten Bögershausen, Victoria Dye, Yi-Jyun Pan, ZheNing Hu, and 依云.
[*] We are counting not just the authorship contribution but issue reporting, mentoring, helping and reviewing that are recorded in the commit trailers.
----------------------------------------------------------------
Git v2.38 Release Notes =======================
UI, Workflows & Features
* "git remote show [-n] frotz" now pays attention to negative pathspec.
* "git push" sometimes performs poorly when reachability bitmaps are used, even in a repository where other operations are helped by bitmaps. The push.useBitmaps configuration variable is introduced to allow disabling use of reachability bitmaps only for "git push".
* "git grep -m" is a way to limit the hits shown per file.
* "git merge-tree" learned a new mode where it takes two commits and computes a tree that would result in the merge commit, if the histories leading to these two commits were to be merged.
* "git mv A B" in a sparsely populated working tree can be asked to move a path between directories that are "in cone" (i.e. expected to be materialized in the working tree) and "out of cone" (i.e. expected to be hidden). The handling of such cases has been improved.
* Earlier, HTTP transport clients learned to tell the server side what locale they are in by sending Accept-Language HTTP header, but this was done only for some requests but not others.
* Introduce a safe.barerepository configuration variable that allows users to forbid discovery of bare repositories.
* Various messages that come from the pack-bitmap codepaths have been tweaked.
* "git rebase -i" learns to update branches whose tip appear in the rebased range with "--update-refs" option.
* "git ls-files" learns the "--format" option to tweak its output.
* "git cat-file" learned an option to use the mailmap when showing commit and tag objects.
* When "git merge" finds that it cannot perform a merge, it should restore the working tree to the state before the command was initiated, but in some corner cases it didn't.
* Operating modes like "--batch" of "git cat-file" command learned to take NUL-terminated input, instead of one-item-per-line.
* "git rm" has become more aware of the sparse-index feature.
* "git rev-list --disk-usage" learned to take an optional value "human" to show the reported value in human-readable format, like "3.40MiB".
* The "diagnose" feature to create a zip archive for diagnostic material has been lifted from "scalar" and made into a feature of "git bugreport".
* The namespaces used by "log --decorate" from "refs/" hierarchy by default has been tightened.
* "git rev-list --ancestry-path=C A..B" is a natural extension of "git rev-list A..B"; instead of choosing a subset of A..B to those that have ancestry relationship with A, it lets a subset with ancestry relationship with C.
* "scalar" now enables built-in fsmonitor on enlisted repositories, when able.
* The bash prompt (in contrib/) learned to optionally indicate when the index is unmerged.
* "git clone" command learned the "--bundle-uri" option to coordinate with hosting sites the use of pre-prepared bundle files.
* "git range-diff" learned to honor pathspec argument if given.
* "git format-patch --from=" can be told to add an in-body "From:" line even for commits that are authored by the given with "--force-in-body-from" option.
* The built-in fsmonitor refuses to work on a network mounted repositories; a configuration knob for users to override this has been introduced.
* The "scalar" addition from Microsoft is now part of the core Git installation.
Performance, Internal Implementation, Development Support etc.
* Collection of what is referenced by objects in promisor packs have been optimized to inspect these objects in the in-pack order.
* Introduce a helper to see if a branch is already being worked on (hence should not be newly checked out in a working tree), which performs much better than the existing find_shared_symref() to replace many uses of the latter.
* Teach "git archive" to (optionally and then by default) avoid spawning an external "gzip" process when creating ".tar.gz" (and ".tgz") archives.
* Allow large objects read from a packstream to be streamed into a loose object file straight, without having to keep it in-core as a whole.
* Further preparation to turn git-submodule.sh into a builtin continues.
* Apply Coccinelle rule to turn raw memmove() into MOVE_ARRAY() cpp macro, which would improve maintainability and readability.
* Teach "make all" to build gitweb as well.
* Tweak tests so that they still work when the "git init" template did not create .git/info directory.
* Add Coccinelle rules to detect the pattern of initializing and then finalizing a structure without using it in between at all, which happens after code restructuring and the compilers fail to recognize as an unused variable.
* The code to convert between GPG trust level strings and internal constants we use to represent them have been cleaned up.
* Support for libnettle as SHA256 implementation has been added.
* The way "git multi-pack" uses parse-options API has been improved.
* A Coccinelle rule (in contrib/) to encourage use of COPY_ARRAY macro has been improved.
* API tweak to make it easier to run fuzz testing on commit-graph parser.
* Omit fsync-related trace2 entries when their values are all zero.
* The codepath to write multi-pack index has been taught to release a large chunk of memory that holds an array of objects in the packs, as soon as it is done with the array, to reduce memory consumption.
* Add a level of redirection to array allocation API in xdiff part, to make it easier to share with the libgit2 project.
* "git fetch" client logs the partial clone filter used in the trace2 output.
* The "bundle URI" design gets documented.
* The common ancestor negotiation exchange during a "git fetch" session now leaves trace log.
* Test portability improvements. (merge 4d1d843be7 mt/rot13-in-c later to maint).
* The "subcommand" mode is introduced to parse-options API and update the command line parser of Git commands with subcommands.
* The pack bitmap file gained a bitmap-lookup table to speed up locating the necessary bitmap for a given commit.
* The assembly version of SHA-1 implementation for PPC has been removed.
* The server side that responds to "git fetch" and "git clone" request has been optimized by allowing it to send objects in its object store without recomputing and validating the object names.
* Annotate function parameters that are not used (but cannot be removed for structural reasons), to prepare us to later compile with -Wunused warning turned on.
* Share the text used to explain configuration variables used by "git " in "git help " with the text from "git help config".
* "git mv A B" in a sparsely populated working tree can be asked to move a path from a directory that is "in cone" to another directory that is "out of cone". Handling of such a case has been improved.
* The chainlint script for our tests has been revamped.
Fixes since v2.37 -----------------
* Rewrite of "git add -i" in C that appeared in Git 2.25 didn't correctly record a removed file to the index, which was fixed.
* Certain diff options are currently ignored when combined-diff is shown; mark them as incompatible with the feature.
* Adjust technical/bitmap-format to be formatted by AsciiDoc, and add some missing information to the documentation.
* Fixes for tests when the source directory has unusual characters in its path, e.g. whitespaces, double-quotes, etc.
* "git mktree --missing" lazily fetched objects that are missing from the local object store, which was totally unnecessary for the purpose of creating the tree object(s) from its input.
* Give _() markings to fatal/warning/usage: labels that are shown in front of these messages.
* References to commands-to-be-typed-literally in "git rebase" documentation mark-up have been corrected.
* In a non-bare repository, the behavior of Git when the core.worktree configuration variable points at a directory that has a repository as its subdirectory, regressed in Git 2.27 days.
* Recent update to vimdiff layout code has been made more robust against different end-user vim settings.
* Plug various memory leaks, both in the main code and in test-tool commands.
* Fixes a long-standing corner case bug around directory renames in the merge-ort strategy.
* The resolve-undo information in the index was not protected against GC, which has been corrected.
* A corner case bug where lazily fetching objects from a promisor remote resulted in infinite recursion has been corrected.
* "git clone" from a repository with some ref whose HEAD is unborn did not set the HEAD in the resulting repository correctly, which has been corrected.
* An earlier attempt to plug leaks placed a clean-up label to jump to at a bogus place, which as been corrected.
* Variable quoting fix in the vimdiff driver of "git mergetool"
* "git shortlog -n" relied on the underlying qsort() to be stable, which shouldn't have. Fixed.
* A fix for a regression in test framework.
* mkstemp() emulation on Windows has been improved.
* Add missing documentation for "include" and "includeIf" features in "git config" file format, which incidentally teaches the command line completion to include them in its offerings.
* Avoid "white/black-list" in documentation and code comments.
* Workaround for a compiler warning against use of die() in osx-keychain (in contrib/).
* Workaround for a false positive compiler warning.
* "git p4" working on UTF-16 files on Windows did not implement CRLF-to-LF conversion correctly, which has been corrected.
* "git p4" did not handle non-ASCII client name well, which has been corrected.
* "rerere-train" script (in contrib/) used to honor commit.gpgSign while recreating the throw-away merges.
* "git checkout" miscounted the paths it updated, which has been corrected.
* Fix for a bug that makes write-tree to fail to write out a non-existent index as a tree, introduced in 2.37.
* There was a bug in the codepath to upgrade generation information in commit-graph from v1 to v2 format, which has been corrected.
* Gitweb had legacy URL shortener that is specific to the way projects hosted on kernel.org used to (but no longer) work, which has been removed.
* Fix build procedure for Windows that uses CMake so that it can pick up the shell interpreter from local installation location.
* Conditionally allow building Python interpreter on Windows
* Fix to lstat() emulation on Windows.
* Older gcc with -Wall complains about the universal zero initializer "struct s = { 0 };" idiom, which makes developers' lives inconvenient (as -Werror is enabled by DEVELOPER=YesPlease). The build procedure has been tweaked to help these compilers.
* Plug memory leaks in the failure code path in the "merge-ort" merge strategy backend.
* "git symbolic-ref symref non..sen..se" is now diagnosed as an error.
* A follow-up fix to a fix for a regression in 2.36 around hooks.
* Avoid repeatedly running getconf to ask libc version in the test suite, and instead just as it once per script.
* Platform-specific code that determines if a directory is OK to use as a repository has been taught to report more details, especially on Windows.
* "vimdiff3" regression fix.
* "git fsck" reads mode from tree objects but canonicalizes the mode before passing it to the logic to check object sanity, which has hid broken tree objects from the checking logic. This has been corrected, but to help existing projects with broken tree objects that they cannot fix retroactively, the severity of anomalies this code detects has been demoted to "info" for now.
* Fixes to sparse index compatibility work for "reset" and "checkout" commands.
* An earlier optimization discarded a tree-object buffer that is still in use, which has been corrected.
* Fix deadlocks between main Git process and subprocess spawned via the pipe_command() API, that can kill "git add -p" that was reimplemented in C recently.
* The sequencer machinery translated messages left in the reflog by mistake, which has been corrected.
* xcalloc(), imitating calloc(), takes "number of elements of the array", and "size of a single element", in this order. A call that does not follow this ordering has been corrected.
* The preload-index codepath made copies of pathspec to give to multiple threads, which were left leaked.
* Update the version of Ubuntu used for GitHub Actions CI from 18.04 to 22.04.
* The auto-stashed local changes created by "git merge --autostash" was mixed into a conflicted state left in the working tree, which has been corrected.
* Multi-pack index got corrupted when preferred pack changed from one pack to another in a certain way, which has been corrected. (merge 99e4d084ff tb/midx-with-changing-preferred-pack-fix later to maint).
* The clean-up of temporary files created via mks_tempfile_dt() was racy and attempted to unlink() the leading directory when signals are involved, which has been corrected. (merge babe2e0559 rs/tempfile-cleanup-race-fix later to maint).
* FreeBSD portability fix for "git maintenance" that spawns "crontab" to schedule tasks. (merge ee69e7884e bc/gc-crontab-fix later to maint).
* Those who use diff-so-fancy as the diff-filter noticed a regression or two in the code that parses the diff output in the built-in version of "add -p", which has been corrected. (merge 0a101676e5 js/add-p-diff-parsing-fix later to maint).
* Segfault fix-up to an earlier fix to the topic to teach "git reset" and "git checkout" work better in a sparse checkout. (merge 037f8ea6d9 vd/sparse-reset-checkout-fixes later to maint).
* "git diff --no-index A B" managed its the pathnames of its two input files rather haphazardly, sometimes leaking them. The command line argument processing has been straightened out to clean it up. (merge 2b43dd0eb5 rs/diff-no-index-cleanup later to maint).
* "git rev-list --verify-objects" ought to inspect the contents of objects and notice corrupted ones, but it didn't when the commit graph is in use, which has been corrected. (merge b27ccae34b jk/rev-list-verify-objects-fix later to maint).
* More fixes to "add -p" (merge 64ec8efb83 js/builtin-add-p-portability-fix later to maint).
* The parser in the script interface to parse-options in "git rev-parse" has been updated to diagnose a bogus input correctly. (merge f20b9c36d0 ow/rev-parse-parseopt-fix later to maint).
* The code that manages list-object-filter structure, used in partial clones, leaked the instances, which has been plugged. (merge 66eede4a37 jk/plug-list-object-filter-leaks later to maint).
* Fix another UI regression in the reimplemented "add -p". (merge f6f0ee247f rs/add-p-worktree-mode-prompt-fix later to maint).
* "git fetch" over protocol v2 sent an incorrect ref prefix request to the server and made "git pull" with configured fetch refspec that does not cover the remote branch to merge with fail, which has been corrected. (merge 49ca2fba39 jk/proto-v2-ref-prefix-fix later to maint).
* A result from opendir() was leaking in the commit-graph expiration codepath, which has been plugged. (merge 12f1ae5324 ml/commit-graph-expire-dir-leak-fix later to maint).
* Just like we have coding guidelines, we now have guidelines for reviewers. (merge e01b851923 vd/doc-reviewing-guidelines later to maint).
* Other code cleanup, docfix, build fix, etc. (merge 77b9e85c0f vd/fix-perf-tests later to maint). (merge 0682bc43f5 jk/test-crontab-fixes later to maint). (merge b46dd1726c cc/doc-trailer-whitespace-rules later to maint).
----------------------------------------------------------------
Changes since v2.37.0 are as follows:
Abhradeep Chakraborty (9): bitmap-format.txt: feed the file to asciidoc to generate html bitmap-format.txt: fix some formatting issues bitmap-format.txt: add information for trailing checksum Documentation/technical: describe bitmap lookup table extension bitmap: move `get commit positions` code to `bitmap_writer_finish` pack-bitmap-write.c: write lookup table extension pack-bitmap-write: learn pack.writeBitmapLookupTable and add tests pack-bitmap: prepare to read lookup table extension bitmap-lookup-table: add performance tests for lookup table
Adam Dinwoodie (1): t1800: correct test to handle Cygwin
Alex Henrie (5): gc: don't translate literal commands builtin/diagnose.c: don't translate the two mode values pack-bitmap: improve grammar of "xor chain" error message l10n: fr: don't say that merge is "the default strategy" l10n: es: update translation
Alexander Shopov (3): l10n: bg.po: Updated Bulgarian translation (5482t) l10n: bg.po: Updated Bulgarian translation (5484t) l10n: bg.po: Updated Bulgarian translation (5484t)
Anthony Delannoy (1): preload-index: fix memleak
Bagas Sanjaya (3): l10n: po-id for 2.38 (round 1) l10n: po-id for 2.38 (round 2) l10n: po-id for 2.38 (round 3)
Calvin Wan (1): submodule merge: update conflict error message
Carlo Marcelo Arenas Belón (2): setup: tighten ownership checks post CVE-2022-24765 cmake: support local installations of git
Carlos López (1): grep: add --max-count command line option
Celeste Liu (1): contrib/rerere-train: avoid useless gpg sign in training
Christian Couder (1): Documentation: clarify whitespace rules for trailers
Cleber Rosa (1): setup: fix function name in a BUG() message
Derrick Stolee (51): branch: add branch_checked_out() helper branch: check for bisects and rebases fetch: use new branch_checked_out() and add tests branch: use branch_checked_out() when deleting refs branch: fix branch_checked_out() leaks t5510: replace 'origin' with URL more carefully vscode: improve tab size and wrapping git-rebase.txt: use back-ticks consistently pack-bitmap-write: use const for hashes midx: extract bitmap write setup midx: reduce memory pressure while writing bitmaps daemon: clarify directory arguments git-cvsserver: clarify directory list git.txt: remove redundant language t: avoid "whitelist" transport.c: avoid "whitelist" t2407: test bisect and rebase as black-boxes t2407: test branches currently using apply backend branch: consider refs under 'update-refs' rebase-interactive: update 'merge' description sequencer: define array with enum values sequencer: add update-ref command rebase: add --update-refs option rebase: update refs from 'update-ref' commands sequencer: rewrite update-refs as user edits todo list rebase: add rebase.updateRefs config option sequencer: ignore HEAD ref under --update-refs sequencer: notify user of --update-refs activity compat/win32: correct for incorrect compiler warning refs: allow "HEAD" as decoration filter t4207: modernize test t4207: test coloring of grafted decorations refs: add array of ref namespaces refs: use ref_namespaces for replace refs base log-tree: use ref_namespaces instead of if/else-if log: add default decoration filter log: add --clear-decorations option log: create log.initialDecorationSet=all maintenance: stop writing log.excludeDecoration fetch: use ref_namespaces during prefetch docs: document bundle URI standard bundle-uri: add example bundle organization remote-curl: add 'get' capability bundle-uri: create basic file-copy logic clone: add --bundle-uri option bundle-uri: add support for http(s):// and file:// clone: --bundle-uri cannot be combined with --depth t6019: modernize tests with helper clone: warn on failure to repo_init() ci: update 'static-analysis' to Ubuntu 22.04 pack-bitmap: remove trace2 region from hot path
Dimitriy Ryazantcev (1): i18n: mark message helpers prefix for translation
Elijah Conners (1): reftable: use a pointer for pq_entry param
Elijah Newren (43): merge-tree: rename merge_trees() to trivial_merge_trees() merge-tree: move logic for existing merge into new function merge-tree: add option parsing and initial shell for real merge function merge-tree: implement real merges merge-ort: split out a separate display_update_messages() function merge-tree: support including merge messages in output merge-ort: provide a merge_get_conflicted_files() helper function merge-ort: remove command-line-centric submodule message from merge-ort merge-tree: provide a list of which files have conflicts merge-tree: provide easy access to `ls-files -u` style info merge-ort: store more specific conflict information merge-ort: optionally produce machine-readable output merge-tree: allow `ls-files -u` style info to be NUL terminated merge-tree: add a --allow-unrelated-histories flag git-merge-tree.txt: add a section on potentional usage mistakes t6429: fix use of non-existent function t6423: add tests of dual directory rename plus add/add conflict merge-ort: small cleanups of check_for_directory_rename merge-ort: make a separate function for freeing struct collisions merge-ort: shuffle the computation and cleanup of potential collisions merge-ort: fix issue with dual rename and add/add conflict merge-ort-wrappers: make printed message match the one from recursive merge-resolve: abort if index does not match HEAD merge: abort if index does not match HEAD for trivial merges merge: do not abort early if one strategy fails to handle the merge merge: fix save_state() to work when there are stat-dirty files merge: make restore_state() restore staged state too merge: ensure we can actually restore pre-merge state merge: do not exit restore_state() prematurely merge-ort: remove translator lego in new "submodule conflict suggestion" merge-ort: avoid surprise with new sub_flag variable merge-ort: provide helpful submodule update message when possible merge-ort: remove code obsoleted by other changes rev-list-options.txt: fix simple typo revision: allow --ancestry-path to take an argument merge: only apply autostash when appropriate merge: cleanup confusing logic for handling successful merges merge: small code readability improvement t4301: add more interesting merge-tree testcases t64xx: convert 'test_create_repo' to 'git init' diff: have submodule_format logic avoid additional diff headers diff: fix filtering of additional headers under --remerge-diff diff: fix filtering of merge commits under --remerge-diff
Emir SARI (3): l10n: tr: Update translations for v2.38.0 round #1 l10n: tr: v2.38.0 round 2 l10n: tr: v2.38.0 3rd round
Eric DeCosta (1): fsmonitor: option to allow fsmonitor to run against network-mounted repos
Eric Sunshine (25): t2407: fix broken &&-chains in compound statement t1092: fix buggy sparse "blame" test t: detect and signal failure within loop t4301: account for behavior differences between sed implementations t4301: fix broken &&-chains and add missing loop termination t4301: emit blank line in more idiomatic fashion t: add skeleton chainlint.pl chainlint.pl: add POSIX shell lexical analyzer chainlint.pl: add POSIX shell parser chainlint.pl: add parser to validate tests chainlint.pl: add parser to identify test definitions chainlint.pl: validate test scripts in parallel chainlint.pl: don't require `return|exit|continue` to end with `&&` t/Makefile: apply chainlint.pl to existing self-tests chainlint.pl: don't require `&` background command to end with `&&` chainlint.pl: don't flag broken &&-chain if `$?` handled explicitly chainlint.pl: don't flag broken &&-chain if failure indicated explicitly chainlint.pl: complain about loops lacking explicit failure handling chainlint.pl: allow `|| echo` to signal failure upstream of a pipe t/chainlint: add more chainlint.pl self-tests test-lib: retire "lint harder" optimization hack test-lib: replace chainlint.sed with chainlint.pl t/Makefile: teach `make test` and `make prove` to run chainlint.pl t: retire unused chainlint.sed chainlint: colorize problem annotations and test delimiters
Fangyi Zhou (3): help: fix doubled words in explanation for developer interfaces l10n: zh_CN v2.38.0 rounds 1 & 2 l10n: zh_CN: 2.38.0 round 3
Felipe Contreras (7): mergetools: vimdiff: fix comment mergetools: vimdiff: make vimdiff3 actually work mergetools: vimdiff: silence annoying messages mergetools: vimdiff: fix for diffopt mergetools: vimdiff: rework tab logic mergetools: vimdiff: fix single window layouts mergetools: vimdiff: simplify tabfirst
Fernando Ramos (1): vimdiff: make layout engine more robust against user vim settings
Glen Choo (16): submodule--helper: eliminate internal "--update" option submodule--helper tests: add missing "display path" coverage submodule--helper update: use display path helper submodule--helper: don't recreate recursive prefix submodule--helper: use correct display path helper submodule--helper update: use --super-prefix submodule--helper: remove display path helper Documentation/git-config.txt: add SCOPES section Documentation: define protected configuration config: learn `git_protected_config()` safe.directory: use git_protected_config() setup.c: create `safe.bareRepository` config.c: NULL check when reading protected config Documentation/git-reflog: remove unneeded \ from \{ submodule--helper: add "const" to copy of "update_data" submodule--helper: refactor "errmsg_str" to be a "struct strbuf"
Goss Geppert (2): dir: traverse into repository dir: minor refactoring / clean-up
Han Xin (6): unpack-objects: low memory footprint for get_data() in dry_run mode object-file.c: refactor write_loose_object() to several steps object-file.c: add "stream_loose_object()" to handle large object unpack-objects: use stream_loose_object() to unpack large objects commit-graph.c: no lazy fetch in lookup_commit_in_graph() t5330: remove run_with_limited_processses()
Hubert Bossot (1): l10n: fr: The word 'branche' is only feminine
Jacob Keller (1): remote: handle negative refspecs in git remote show
Jacob Stopak (3): Documentation: fix various repeat word typos Documentation: clean up a few misspelled word typos Documentation: clean up various typos in technical docs
Jaydeep Das (1): gpg-interface: add function for converting trust level to string
Jean-Noël Avila (3): l10n: fr: v2.38 round 1 l10n: fr: v2.38.0 round 2 l10n: fr: v2.38.0 round 3
Jeff King (64): is_promisor_object(): walk promisor packs in pack-order fetch: stop passing around unused worktrees variable branch: drop unused worktrees variable revisions.txt: escape "..." to avoid asciidoc horizontal ellipsis clone: drop extra newline from warning message clone: propagate empty remote HEAD even with other branches clone: use remote branch if it matches default HEAD clone: move unborn head creation to update_head() ref-filter: disable save_commit_buffer while traversing diff-files: move misplaced cleanup label write_midx_bitmap(): drop unused refs_snapshot parameter config.mak.dev: squelch -Wno-missing-braces for older gcc tree-walk: add a mechanism for getting non-canonicalized modes fsck: actually detect bad file modes in trees fsck: downgrade tree badFilemode to "info" is_promisor_object(): fix use-after-free of tree buffer compat: add function to enable nonblocking pipes git-compat-util: make MAX_IO_SIZE define globally available pipe_command(): avoid xwrite() for writing to pipe pipe_command(): handle ENOSPC when writing to a pipe pipe_command(): mark stdin descriptor as non-blocking git-compat-util: add UNUSED macro refs: mark unused each_ref_fn parameters refs: mark unused reflog callback parameters refs: mark unused virtual method parameters transport: mark bundle transport_options as unused streaming: mark unused virtual method parameters config: mark unused callback parameters hashmap: mark unused callback parameters mark unused read_tree_recursive() callback parameters run-command: mark unused async callback parameters is_path_owned_by_current_uid(): mark "report" parameter as unused xdiff: drop unused mmfile parameters from xdl_do_histogram_diff() log-tree: drop unused commit param in remerge_diff() match_pathname(): drop unused "flags" parameter verify_one_sparse(): drop unused parameters reftable: drop unused parameter from reader_seek_linear() reflog: assert PARSE_OPT_NONEG in parse-options callbacks xdiff: drop unused mmfile parameters from xdl_do_patience_diff() pass subcommand "prefix" arguments to parse_options() maintenance: add parse-options boilerplate for subcommands remote: run "remote rm" argv through parse_options() pack-bitmap-write: drop unused pack_idx_entry parameters tempfile: drop active flag tempfile: update comment describing state transitions test-crontab: minor memory and error handling fixes lookup_commit_in_graph(): use prepare_commit_graph() to check for graph rev-list: disable commit graph with --verify-objects parse_object(): allow skipping hash check upload-pack: skip parse-object re-hashing of "want" objects parse_object(): check commit-graph when skip_hash set t1060: check partial clone of misnamed blob list_objects_filter_copy(): deep-copy sparse_oid_name field transport: deep-copy object-filter struct for fetch-pack transport: free filter options in disconnect_git() list_objects_filter_options: plug leak of filter_spec strings prepare_repo_settings(): plug leak of config values fetch: stop checking for NULL transport->remote in do_fetch() fetch: add branch.*.merge to default ref-prefix extension list-objects-filter: don't memset after releasing filter struct list-objects-filter: handle null default filter spec list-objects-filter: add and use initializers list-objects-filter: convert filter_spec to a strbuf list-objects-filter: initialize sub-filter structs
Johannes Schindelin (38): merge-ort: store messages in a list, not in a single strbuf merge-ort: make `path_messages` a strmap to a string_list Git 2.30.5 Git 2.31.4 Git 2.32.3 Git 2.33.4 Git 2.34.4 Git 2.35.4 Git 2.36.2 add --interactive: allow `update` to stage deleted files tests: fix incorrect --write-junit-xml code mergetool(vimdiff): allow paths to contain spaces again shortlog: use a stable sort t5351: avoid relying on `core.fsyncMethod = batch` to be supported t5351: avoid using `test_cmp` for binary data windows: include the Python bits when building Git for Windows mingw: remove unneeded `NO_GETTEXT` directive mingw: remove unneeded `NO_CURL` directive lstat(mingw): correctly detect ENOTDIR scenarios merge-ort: clean up after failed merge merge-ort: do leave trace2 region even if checkout fails setup: fix some formatting setup: prepare for more detailed "dubious ownership" messages mingw: provide details about unsafe directories' ownership mingw: be more informative when ownership check fails on FAT32 mingw: handle a file owned by the Administrators group correctly scalar unregister: stop FSMonitor daemon range-diff: reorder argument handling range-diff: consistently validate the arguments range-diff: optionally accept pathspecs add -p: avoid ambiguous signed/unsigned comparison t3701: test the built-in `add -i` regardless of NO_PERL t6132(NO_PERL): do not run the scripted `add -p` add -p: detect more mismatches between plain vs colored diffs add -p: gracefully handle unparseable hunk headers in colored diffs add -p: ignore dirty submodules git help: special-case `scalar` scalar: implement the `help` subcommand
Jonathan Tan (1): fetch-pack: write effective filter to trace2
Jordi Mas (3): l10n: Update Catalan translation l10n: Update Catalan translation l10n: Update Catalan translation
Josh Steadmon (1): fetch-pack: add tracing for negotiation rounds
Julien Rouhaud (1): gitweb: remove title shortening heuristics
Junio C Hamano (45): revision: mark blobs needed for resolve-undo as reachable A regression fix for 2.37 Git 2.37.1 builtin/mv.c: use the MOVE_ARRAY() macro instead of memmove() The first batch after Git 2.37 fsck: do not dereference NULL while checking resolve-undo data The second batch The third batch The fourth batch The fifth batch builtin/remote.c: use the right kind of STRING_LIST_INIT The sixth batch The seventh batch Downmerge a handful of fixes for 2.37.x maintenance track The eighth batch The ninth batch doc: consolidate --rerere-autoupdate description doc: clarify rerere-autoupdate Downmerge a bit more for 2.37.x The tenth batch The eleventh batch Git 2.37.2 The twelfth batch The thirteenth batch The fourteenth batch t5329: notice a failure within a loop The fifteenth batch A handful more topics from the 'master' front for 2.37.3 pretty: separate out the logic to decide the use of in-body from format-patch: allow forcing the use of in-body From: header format-patch: learn format.forceInBodyFrom configuration variable The sixteenth batch Git 2.37.3 The seventeenth batch The eighteenth batch The nineteenth batch The twentieth batch Merge a handful of topics from the 'master' front Prepare for 2.38-rc0 Git 2.38-rc0 A bit more of remaining topics before -rc1 Final batch before -rc1 Git 2.38-rc1 Git 2.38-rc2 Git 2.38
Justin Donnelly (1): git-prompt: show presence of unresolved conflicts at command prompt
Kilian Kilger (2): git-p4: fix bug with encoding of p4 client name git-p4: refactoring of p4CmdList()
Kyle Zhao (1): send-pack.c: add config push.useBitmaps
Lessley Dennington (1): osx-keychain: fix compiler warning
Li Linchao (3): ls-files: update test style remote-curl: send Accept-Language header to server rev-list: support human-readable output for `--disk-usage`
Linus Torvalds (1): symbolic-ref: refuse to set syntactically invalid target
Manuel Boni (1): config.txt: document include, includeIf
Martin Ågren (4): config/core.txt: fix minor issues for `core.sparseCheckoutCone` t4200: drop irrelevant code read-cache: make `do_read_index()` always set up `istate->repo` cmd-list.perl: fix identifying man sections
Matheus Tavares (7): checkout: document bug where delayed checkout counts entries twice checkout: show bug about failed entries being included in final report checkout: fix two bugs on the final count of updated entries pkt-line.h: move comment closer to the associated code t0021: avoid grepping for a Perl-specific string at filter output t0021: implementation the rot13-filter.pl script in C tests: use the new C rot13-filter helper to avoid PERL prereq
Matthew John Cheetham (1): scalar: enable built-in FSMonitor on `register`
Miaoqian Lin (1): commit-graph: Fix missing closedir in expire_commit_graphs
Michael J Gruber (3): sequencer: do not translate reflog messages sequencer: do not translate parameters to error_resolve_conflict() sequencer: do not translate command names
Moritz Baumann (3): git-p4: fix CR LF handling for utf16 files git-p4: fix typo in P4Submit.applyCommit() git-p4: fix error handling in P4Unshelve.renameBranch()
Peter Krefting (2): l10n: sv.po: Update Swedish translation (5482t0f0u) l10n: sv.po: Update Swedish translation (5484t0f0u)
Philip Oakley (1): doc add: renormalize is not idempotent for CRCRLF
Philippe Blain (3): diff-format.txt: dst can be 0* SHA-1 when path is deleted, too diff-format.txt: correct misleading wording diff-index.txt: update raw output format in examples
Phillip Wood (5): xdiff: introduce XDL_ALLOC_ARRAY() xdiff: introduce xdl_calloc xdiff: introduce XDL_CALLOC_ARRAY() xdiff: introduce XDL_ALLOC_GROW() tests: cache glibc version check
Ralf Thielow (2): l10n: de.po: update German translation l10n: de.po: update German translation
René Scharfe (28): archive: update format documentation archive: rename archiver data field to filter_command archive-tar: factor out write_block() archive-tar: add internal gzip implementation archive-tar: use OS_CODE 3 (Unix) for internal gzip archive-tar: use internal gzip by default combine-diff: abort if --ignore-matching-lines is given combine-diff: abort if --output is given cocci: avoid normalization rules for memcpy mingw: avoid mktemp() in mkstemp() implementation mergesort: unify ranks loops mergesort: tighten merge loop mergesort: add macros for typed sort of linked lists test-mergesort: use DEFINE_LIST_SORT_DEBUG test-mergesort: use DEFINE_LIST_SORT blame: use DEFINE_LIST_SORT commit: use DEFINE_LIST_SORT fetch-pack: use DEFINE_LIST_SORT packfile: use DEFINE_LIST_SORT mergesort: remove llist_mergesort() nonblock: support Windows tempfile: avoid directory cleanup race test-mergesort: read sort input all at once test-mergesort: use mem_pool for sort input diff-no-index: release strbuf on queue error diff-no-index: release prefixed filenames diff-no-index: simplify argv index calculation add -p: fix worktree patch mode prompts
Richard Oliver (1): mktree: do not check type of remote objects
SZEDER Gábor (30): Makefile: build 'gitweb' in the default target multi-pack-index: simplify handling of unknown --options index-format.txt: remove outdated list of supported extensions git.c: update NO_PARSEOPT markings t3301-notes.sh: check that default operation mode doesn't take arguments t5505-remote.sh: check the behavior without a subcommand t0040-parse-options: test parse_options() with various 'parse_opt_flags' api-parse-options.txt: fix description of OPT_CMDMODE parse-options: PARSE_OPT_KEEP_UNKNOWN only applies to --options parse-options: clarify the limitations of PARSE_OPT_NODASH parse-options: drop leading space from '--git-completion-helper' output parse-options: add support for parsing subcommands builtin/bundle.c: let parse-options parse subcommands builtin/commit-graph.c: let parse-options parse subcommands builtin/gc.c: let parse-options parse 'git maintenance's subcommands builtin/hook.c: let parse-options parse subcommands builtin/multi-pack-index.c: let parse-options parse subcommands builtin/notes.c: let parse-options parse subcommands builtin/reflog.c: let parse-options parse subcommands builtin/remote.c: let parse-options parse subcommands builtin/sparse-checkout.c: let parse-options parse subcommands builtin/stash.c: let parse-options parse subcommands builtin/worktree.c: let parse-options parse subcommands promisor-remote: fix xcalloc() argument order t0040-parse-options: remove leftover debugging test-parse-options.c: don't use for loop initial declaration test-parse-options.c: fix style of comparison with zero notes: simplify default operation mode arguments check notes, remote: show unknown subcommands between `' t/Makefile: remove 'test-results' on 'make clean'
Shaoxuan Yuan (22): t7002: add tests for moving out-of-cone file/directory t1092: mv directory from out-of-cone to in-cone mv: update sparsity after moving from out-of-cone to in-cone mv: decouple if/else-if checks using goto mv: check if out-of-cone file exists in index with SKIP_WORKTREE bit mv: check if exists in index to handle overwriting mv: use flags mode for update_mode mv: add check_dir_in_index() and solve general dir check issue t1092: add tests for `git-rm` pathspec.h: move pathspec_needs_expanded_index() from reset.c to here rm: expand the index only when necessary rm: integrate with sparse-index t7002: add tests for moving from in-cone to out-of-cone mv: rename check_dir_in_index() to empty_dir_has_sparse_contents() mv: free the with_slash in check_dir_in_index() mv: check if is a SKIP_WORKTREE_DIR mv: remove BOTH from enum update_mode mv: from in-cone to out-of-cone mv: cleanup empty WORKING_DIRECTORY advice.h: add advise_on_moving_dirty_path() mv: check overwrite for in-to-out move builtin/mv.c: fix possible segfault in add_slash()
Siddharth Asthana (4): revision: improve commit_rewrite_person() ident: move commit_rewrite_person() to ident.c ident: rename commit_rewrite_person() to apply_mailmap_to_header() cat-file: add mailmap support
Tao Klerks (1): rev-parse: documentation adjustment - mention remote tracking with @{u}
Taylor Blau (14): pack-objects.h: remove outdated pahole results commit-graph: pass repo_settings instead of repository t5318: demonstrate commit-graph generation v2 corruption commit-graph: introduce `repo_find_commit_pos_in_graph()` commit-graph: fix corrupt upgrade from generation v1 to v2 t1006: extract --batch-command inputs to variables builtin/cat-file.c: support NUL-delimited input with `-z` t5326: demonstrate potential bitmap corruption t/lib-bitmap.sh: avoid silencing stderr midx.c: extract `struct midx_fanout` midx.c: extract `midx_fanout_add_midx_fanout()` midx.c: extract `midx_fanout_add_pack_fanout()` midx.c: include preferred pack correctly with existing MIDX midx.c: avoid adding preferred objects twice
Teng Long (8): pack-bitmap.c: fix formatting of error messages pack-bitmap.c: mark more strings for translations pack-bitmap.c: rename "idx_name" to "bitmap_name" pack-bitmap.c: do not ignore error when opening a bitmap file pack-bitmap.c: using error() instead of silently returning -1 pack-bitmap.c: continue looping when first MIDX bitmap is found api-trace2.txt: print config key-value pair tr2: shows scope unconditionally in addition to key-value pair
Todd Zullinger (2): docs: fix a few recently broken links api docs: link to html version of api-trace2
Victoria Dye (37): scalar: reword command documentation to clarify purpose scalar: convert README.md into a technical design doc checkout: fix nested sparse directory diff in sparse index oneway_diff: handle removed sparse directories cache.h: create 'index_name_pos_sparse()' unpack-trees: unpack new trees as sparse directories scalar-diagnose: use "$GIT_UNZIP" in test scalar-diagnose: avoid 32-bit overflow of size_t scalar-diagnose: add directory to archiver more gently scalar-diagnose: move 'get_disk_info()' to 'compat/' scalar-diagnose: move functionality to common location diagnose.c: add option to configure archive contents builtin/diagnose.c: create 'git diagnose' builtin builtin/diagnose.c: add '--mode' option builtin/bugreport.c: create '--diagnose' option scalar-diagnose: use 'git diagnose --mode=all' scalar: update technical doc roadmap scalar: constrain enlistment search scalar-unregister: handle error codes greater than 0 scalar-[un]register: clearly indicate source of error scalar-delete: do not 'die()' in 'delete_enlistment()' scalar: move config setting logic into its own function scalar: update technical doc roadmap with FSMonitor support p0004: fix prereq declaration p0006: fix 'read-tree' argument ordering unpack-trees: fix sparse directory recursion check scalar: fix command documentation section header scalar: include in standard Git build & installation scalar: add to 'git help -a' command list scalar-clone: add test coverage t/perf: add Scalar performance tests t/perf: add 'GIT_PERF_USE_SCALAR' run option Documentation/technical: include Scalar technical doc diagnose.c: refactor to safely use 'd_type' Documentation: add ReviewingGuidelines diagnose: add to command-list.txt version: fix builtin linking & documentation
Yi-Jyun Pan (1): l10n: zh_TW.po: Git 2.38.0, round 3
ZheNing Hu (2): ls-files: introduce "--format" option ls-files: fix black space in error message
brian m. carlson (2): sha256: add support for Nettle gc: use temporary file for editing crontab
Ævar Arnfjörð Bjarmason (153): t0008: don't rely on default ".git/info/exclude" tests: don't depend on template-created .git/branches tests: don't assume a .git/info for .git/info/grafts tests: don't assume a .git/info for .git/info/attributes tests: don't assume a .git/info for .git/info/refs tests: don't assume a .git/info for .git/info/exclude tests: don't assume a .git/info for .git/info/sparse-checkout object-file.c: factor out deflate part of write_loose_object() core doc: modernize core.bigFileThreshold documentation git-submodule.sh: remove unused sanitize_submodule_env() git-submodule.sh: remove unused $prefix variable git-submodule.sh: make the "$cached" variable a boolean git-submodule.sh: remove unused top-level "--branch" argument submodule--helper: have --require-init imply --init submodule update: remove "-v" option submodule--helper: rename "absorb-git-dirs" to "absorbgitdirs" submodule--helper: report "submodule" as our name in some "-h" output submodule--helper: understand --checkout, --merge and --rebase synonyms git-submodule.sh: use "$quiet", not "$GIT_QUIET" git-sh-setup.sh: remove "say" function, change last users gitweb/Makefile: define all .PHONY prerequisites inline gitweb/Makefile: add a $(GITWEB_ALL) variable gitweb/Makefile: clear up and de-duplicate the gitweb.{css,js} vars gitweb/Makefile: prepare to merge into top-level Makefile gitweb: remove "test" and "test-installed" targets gitweb/Makefile: include in top-level Makefile gitweb/Makefile: add a "NO_GITWEB" parameter tests: add missing double quotes to included library paths test-lib.sh: fix prepend_var() quoting issue config tests: fix harmless but broken "rm -r" cleanup submodule--helper: remove unused SUPPORT_SUPER_PREFIX flags check-ref-format: fix trivial memory leak clone: fix memory leak in wanted_peer_refs() submodule.c: free() memory from xgetcwd() revert: free "struct replay_opts" members cat-file: fix a memory leak in --batch-command mode merge-file: refactor for subsequent memory leak fix merge-file: fix memory leaks on error path checkout: avoid "struct unpack_trees_options" leak gc: fix a memory leak cat-file: fix a common "struct object_context" memory leak pull: fix a "struct oid_array" memory leak test-tool test-hash: fix a memory leak test-tool path-utils: fix a memory leak test-tool {dump,scrap}-cache-tree: fix memory leaks test-tool urlmatch-normalization: fix a memory leak test-tool regex: call regfree(), fix memory leaks test-tool json-writer: fix memory leaks test-tool bloom: fix memory leaks test-tool ref-store: fix a memory leak test-tool delta: fix a memory leak Makefile: remove mandatory "spatch" arguments from SPATCH_FLAGS Makefile & .gitignore: ignore & clean "git.res", not "*.res" cocci: add a "coccicheck-test" target and test *.cocci rules cocci: have "coccicheck{,-pending}" depend on "coccicheck-test" cocci: add and apply a rule to find "unused" strbufs cocci: generalize "unused" rule to cover more than "strbuf" trace2: only include "fsync" events if we git_fsync() test-lib: use $1, not $@ in test_known_broken_{ok,failure}_ test-lib: don't set GIT_EXIT_OK before calling test_atexit_handler test-lib: fix GIT_EXIT_OK logic errors, use BAIL_OUT test-lib: add a --invert-exit-code switch t/README: reword the "GIT_TEST_PASSING_SANITIZE_LEAK" description test-lib: add a SANITIZE=leak logging mode t/Makefile: don't remove test-results in "clean-except-prove-cache" tests: move copy/pasted PERL + Test::More checks to a lib-perl.sh test-lib: simplify by removing test_external test-lib: add a GIT_TEST_PASSING_SANITIZE_LEAK=check mode test-lib: have the "check" mode for SANITIZE=leak consider leak logs leak tests: don't skip some tests under SANITIZE=leak leak tests: mark passing SANITIZE=leak tests as leak-free upload-pack: fix a memory leak in create_pack_file() CI: use "GIT_TEST_SANITIZE_LEAK_LOG=true" in linux-leaks bisect.c: add missing "goto" for release_revisions() test-fast-rebase helper: use release_revisions() (again) log: fix a memory leak in "git show ..." log: refactor "rev.pending" code in cmd_show() bisect.c: partially fix bisect_rev_setup() memory leak revisions API: don't leak memory on argv elements that need free()-ing help.c: refactor drop_prefix() to use a "switch" statement" help.c: remove common category behavior from drop_prefix() behavior git help doc: use "" instead of "" git docs: add a category for user-facing file, repo and command UX git docs: add a category for file formats, protocols and interfaces docs: move commit-graph format docs to man section 5 docs: move protocol-related docs to man section 5 docs: move index format docs to man section 5 docs: move signature docs to man section 5 docs: move pack format docs to man section 5 docs: move cruft pack docs to gitformat-pack docs: move http-protocol docs to man section 5 hook API: don't segfault on strbuf_addf() to NULL "out" Makefile + hash.h: remove PPC_SHA1 implementation Makefile: use $(OBJECTS) instead of $(C_OBJ) git-compat-util.h: use "UNUSED", not "UNUSED(var)" git-compat-util.h: use "deprecated" for UNUSED variables submodule tests: test usage behavior submodule tests: test for "add " submodule--helper: remove unused "name" helper submodule--helper: remove unused "list" helper test-tool submodule-config: remove unused "--url" handling submodule--helper: move "is-active" to a test-tool submodule--helper: move "check-name" to a test-tool submodule--helper: move "resolve-relative-url-test" to a test-tool submodule--helper style: don't separate declared variables with \n\n submodule--helper style: add \n\n after variable declarations submodule--helper: replace memset() with { 0 }-initialization submodule--helper: use xstrfmt() in clone_submodule() submodule--helper: move "sb" in clone_submodule() to its own scope submodule--helper: add "const" to passed "module_clone_data" submodule--helper: add "const" to passed "struct update_data" submodule--helper: don't redundantly check "else if (res)" submodule--helper: rename "int res" to "int ret" submodule--helper: return "ret", not "1" from update_submodule() submodule--helper: add missing braces to "else" arm submodule--helper: don't call submodule_strategy_to_string() in BUG() submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string() submodule--helper: use "code" in run_update_command() submodule--helper: don't exit() on failure, return submodule--helper: libify determine_submodule_update_strategy() submodule--helper: libify "must_die_on_failure" code paths submodule--helper update: don't override 'checkout' exit code submodule--helper: libify "must_die_on_failure" code paths (for die) submodule--helper: check repo{_submodule,}_init() return values submodule--helper: libify more "die" paths for module_update() submodule--helper: libify even more "die" paths for module_update() submodule--helper: fix bad config API usage submodule--helper: fix a leak in "clone_submodule" submodule--helper: fix trivial get_default_remote_submodule() leak submodule--helper: fix most "struct pathspec" memory leaks submodule--helper: "struct pathspec" memory leak in module_update() submodule--helper: don't leak {run,capture}_command() cp.dir argument submodule--helper: add and use *_release() functions submodule--helper: fix "errmsg_str" memory leak submodule--helper: fix "sm_path" and other "module_cb_list" leaks submodule--helper: fix a leak with repo_clear() submodule--helper: fix a memory leak in get_default_remote_submodule() submodule--helper: fix "reference" leak submodule--helper: fix obscure leak in module_add() submodule--helper: fix a leak in module_add() submodule--helper: fix a memory leak in print_status() submodule--helper: free some "displaypath" in "struct update_data" submodule--helper: free rest of "displaypath" in "struct update_data" submodule--helper: fix a configure_added_submodule() leak docs: add and use include template for config/* includes grep docs: de-duplicate configuration sections send-email docs: de-duplicate configuration sections apply docs: de-duplicate configuration sections notes docs: de-duplicate and combine configuration sections difftool docs: de-duplicate configuration sections log docs: de-duplicate configuration sections docs: add CONFIGURATION sections that map to a built-in docs: add CONFIGURATION sections that fuzzy map to built-ins
Øystein Walle (1): rev-parse --parseopt: detect missing opt-spec

Other Recent Tux Machines' Posts

New GeForce NOW native Linux support could lure Windows 10 refugees
NVIDIA is reportedly preparing to bring NVIDIA GeForce NOW to Linux so that users finally have native support for the cloud gaming service
Vitalik Buterin Rides the Credibility of Linux
Linux as a brand
Manjaro 26.0 Released with Linux 6.18 LTS, Xfce 4.20, KDE Plasma 6.5, and GNOME 49
Arch Linux-based Manjaro Linux 26.0 distribution has been officially released today as a major update that introduces some of the latest GNU/Linux technologies and open-source software.
This Week in Plasma: car of the year edition
Welcome to a new issue of This Week in Plasma
KDE Frameworks 6.22 Fixes Multiple Clipboard-Related Issues on Wayland
KDE Frameworks 6.22 open-source software suite is out now with various improvements and bug fixes for KDE apps and the Plasma desktop. Here’s what’s new!
Immutable Distro Nitrux 5.1 Released with Linux Kernel 6.18 LTS, New Tools
Nitrux developer Uri Herrera announced today the general availability of Nitrux 5.1 as a new stable update to this immutable and systemd-free distribution featuring new and updated components.
 
First Look at Mageia 10 – Alpha Release Now Available for Public Testing
After many months of hard work, the upcoming Mageia 10 Linux distribution now has its first alpha release available for public testing if you want to help the devs fix bugs before the final release hits the streets.
Budgie 10.10 Desktop Environment Released as the First Wayland-Only Version
The Budgie desktop developers announced today the release and general availability of the Budgie 10.10 desktop environment, which is the last update in the Budgie 10 series and the first to go Wayland-only.
Security Leftovers
Security picks for today
GNU/Linux Leftovers
and some KDE
Debian: Debian goes retro with a spatial desktop that time forgot and "Debian Taco'
some Debian picks
Red Hat Promoting Hype and Microsoft, Fedora Updates
a bit sad to watch
Free, Libre, and Open Source Software and Standards
FOSS leftovers mostly
Programming Leftovers
Development picks for today
Open Hardware/Modding: ESP32, Armbian, and More
Devices, gadgets with GNU/Linux
OpenSUSE: Planet News Roundup and Tumbleweed's Review of the Week
OpenSUSE's latest
GNOME Hey Hi (AI, Slop) Nonsense and GNOME Foundation Update Promoting Microsoft Stuff
GNOME updates
today's howtos
quite a lot this evening
Applications: Dockhand, diffoscope, RustDesk, and More
Applications for GNU/Linux
Kernel: Bugs' Age, QEMU 10, and Slop in Linux
4 new articles
Games: Steam Record for GNU/Linux, Free Software "Makes Steam Frame A Linux Playground", EU Impact on GNU/Linux Adoption for Gamers
3 stories
I switched to Linux: Bye macOS and Windows
For the past month or so, I've been dabbling with Linux across my devices
Games: Steam on ARM64 With GNU/Linux
2 stories
Wine 11.0-rc5
The Wine development release 11.0-rc5 is now available
KDE Plasma 6.6 Desktop Is Coming on February 17th, Here’s What to Expect
KDE Project’s upcoming KDE Plasma 6.6 desktop environment series is expected on February 17th, 2026, and it’s packed with many new features and improvements, so let’s take a look at the biggest changes so far.
Debian 13.3 “Trixie” Released with 108 Bug Fixes and 37 Security Updates
Today, the Debian Project announced the release and general availability of Debian 13.3 as the third update to the latest Debian GNU/Linux 13 “Trixie” operating system series.
Games: Flatpaks, Nova Roma, and More
half a dozen picks from GamingOnLinux
Arch Linux-Based ArchBang Linux Distro Introduces New Application Launcher
The ArchBang Linux project has published a new ISO snapshot today with various improvements for this Arch Linux-based distribution using the Labwc window-stacking compositor on top of Wayland.
Android Leftovers
I changed this Android setting and now I can fit 30% more on my screen
Dozzle 9.0 Real‑Time Docker Log Viewer Improves Log Grouping
Dozzle 9.0 real‑time Docker log viewer adds collapsible homepage sections
loss32 Wants to Turn Linux Into a Full Win32 Desktop Powered by WINE
loss32 is an experimental Linux project that runs an entire Win32 desktop under WINE
Daily driving Linux for 3 years taught me these 6 habits
I deleted Windows off my work computer and permanently switched to Linux
LMDE 7 Users Get the Cinnamon 6.6 Desktop Environment
Cinnamon 6.6 has landed in LMDE 7
Steam Is Coming to ARM64 as Ubuntu Opens Testing via Snap
Steam is moving closer to ARM64 availability as Ubuntu opens testing of a Snap package powered by FEX x86 emulation
This awesome tool for Linux newcomers is like Ninite for Team Tux
Well, it turns out that someone has made something similar for Linux distros
Turning freedom values into freedom practice with the FSF tech team
Ian Kelling, FSF senior systems administrator, and also our president
Free and Open Source Software, and Benchmark
This is free and open source software
Ubuntu Sway – Ubuntu with Sway Wayland compositor
Ubuntu Sway aims to provide a user-friendly desktop based on Sway
This Week in GNOME: #231 Blueprint Maps
Update on what happened across the GNOME project in the week from January 02 to January 09
2026 Exercise [original]
I used to underestimate the importance of this, not just for physical but also for mental benefits
Security Leftovers
Security related stuff
GNU/Linux and Hardware Leftovers
mostly GNU/Linux links
Today in Techrights
Some of the latest articles
Barbados Joining Growing Number of Nations Where GNU/Linux is Measured at Around 10% [original]
Did something happen there?
Security and BSD Leftovers
just 2 more links for now
Free, Libre, and Open Source Software, Open Access, and Standards
FOSS and more
Web Browsers: Brave Adblock Engine Rewrite, Using RSS, and Firefox Pushing Slop Dressed Up as Hey Hi (AI) After Removing RSS Support, Which Was Actually Useful
WWW picks
Programming Leftovers
Development related leftovers
Open Hardware/Modding: Fairphone, Raspberry Pi, and More
gadgets and more
Omarchy 3.3.0 Released
based on Arch
Dima Kogan has the Meshroom packaged for Debian, Reproducible Builds in December 2025
Debian picks
Fedora Dominated by IBM Staff, Red Hat is 100% Focused on Promoting Slop and Riding Bubbles
sad news
Ubuntu 25.04 (Plucky Puffin) Officially Nears End of Life
Ubuntu 25.04 (Plucky Puffin) will reach end of life on January 15, 2026
today's howtos
only 3 for now
Games: Steel Bounty, Dungeon Rampage, Wireworks, and Dig Dig Die
half a dozen new articles from GamingOnLinux
Does 1 in 10 Laptops/Desktops in Somalia Run GNU/Linux Now? [original]
statCounter sees the same duo at almost 10%
today's howtos
only half a dozen for now
Security Patching in GNU/Linux
Security leftovers
Free, Libre, and Open Source Software Leftovers
FOSS picks
GNU/Linux Leftovers
kernel and more
Orange Pi RV2 and Octa-core RISC-V GNU/Linux laptop in 2026
some exciting Linux devices
Red Hat and Fedora Leftovers
mostly Red Hat, some Fedora
European Commission issues call for evidence on Free/Libre Software
FOSS win
Android Leftovers
I used the Honor Magic8 Pro, and the OnePlus 15 should be worried
Distributions and Operating Systems: AnduinOS, NeXT, EasyOS, FreeBSD, and Gentoo
mixture of relevant news
This free tool gives you one easy way to install apps on Linux and Mac - here's how
With Homebrew, you get access to even more apps - maintained by both Linux and MacOS developers
KDE Gear 25.12.1 Released with Various Improvements for Your Favorite KDE Apps
The KDE Project released today KDE Gear 25.12.1 as the first maintenance update to the latest KDE Gear 25.12 series of this collection of open-source apps for the KDE Plasma desktop environment and other platforms.
IPFire Linux Firewall Distro Adds Wi-Fi 7 and Wi-Fi 6 Support, LLDP and CDPv2
IPFire 2.29 Core Update 199 has been released today by developer Michael Tremer as a new update to this hardened Linux firewall distribution that primarily performs as a router and a firewall, which introduces Wi-Fi 7 support and many other changes.
The state of Enterprise Linux for networking
The open-source Linux operating system has emerged to be the foundation for cloud and networking across industries
Why do I use Linux? It's the apps, and here are 7 of my favorites
Many people say they would switch to Linux if it weren't for the lack of some Windows-exclusive apps
This lightweight distro loaded with apps is not your father's GNU/Linux - here's why
Lightweight Linux distributions get a bad rap for shipping with minimal reinstalled software
MUSE Book laptop review – Testing an octa-core RISC-V Linux laptop in 2026
SpacemiT sent me a sample of the MUSE Book RISC-V Linux laptop for review
Free and Open Source Software
This is free and open source software
CuerdOS 2.0 Skycatcher Xfce: Spanish Distro Takes Chances, Mostly Succeeds
CuerdOS 2.0 Skycatcher’s Xfce edition leans on Debian Trixie, custom tuning
GNU/Linux Rose to 6% in Benin, Says statCounter [original]
GNU/Linux gains
Today in Techrights
Some of the latest articles
Free, Libre, and Open Source Software and Standards
leftovers focused on FOSS
Programming Leftovers
Development picks
Web Browsers/Web Servers: curl, RSS, and More
WWW centric picks
Linux and BSD Leftovers
This Week in Linux and more
Servers: Self-Hosted Grafana and Latest From Kubernetes
Server news
Android Leftovers
Your Android-powered car will get faster updates thanks to Qualcomm
Red Hat is Promoting Slop and Back Doors (Sold as "Confidential")
IBM and RHAT stuff
Devices With GNU/Linux and Open Hardware, 3-D Printing
On modding oriented machines
This Week in Plasma: new year, new accessibility features!
Plasma developers are starting to trickle back from their vacations
Want to try the original KDE desktop from 1996? I did, and it took me back - here's how
You can revisit the early days of Linux through MiDesktop, a modern fork of the original KDE 1
Kernel deadlock and splitting a Linux kernel package
Linux and more
today's howtos
idroot and more
Games: Titles in Steam, Godot 4.6 Beta 3, Vista 11 at Risk as GNU/Linux Gains (RAM Prices Favour the Latter)
many picks for today
I built a project management dashboard with Linux KDE Plasma widgets (no apps needed)
Well, here’s how I used KDE Plasma widgets to turn my Linux desktop into a functional project management dashboard
5 reasons I stopped using Ubuntu
Ubuntu has long been the face of Linux
Sick of Microslop? New Linux distro could win over Windows 11 haters
This is markedly different from current Linux efforts on the Windows front
Make Gnome Screenshot Work Again in Ubuntu 25.10
For users who prefer the classic Gnome Screenshot tool
Free and Open Source Software
This is free and open source software
Stable kernels: Linux 6.18.4, and Linux 6.12.64
I'm announcing the release of the 6.18.4 kernel
Fedora, GNU-like Mobile Linux, and Fake 'FSF' (FSF-EEE)
some leftovers
Android Leftovers
Google’s new Android source code release schedule is bad news for custom ROMs
TUXEDO InfinityBook Max 16 Gen10 Linux Laptop Unveiled with New OLED Display
Linux hardware vendor TUXEDO Computers unveiled today the 10th generation (Gen10) of their TUXEDO InfinityBook Max 16 Linux-powered laptop with newer NVIDIA GPUs, newer Intel CPU, and a new display.
Someone made a sticky notes app within the Linux terminal, and you can download it right now
Ever since I made the jump over to Linux
This new Linux app lets you control your PC with your voice, and it's free
EasySpeak should fill a notable gap in the Linux ecosystem where many existing voice tools are either proprietary
Disable Lock Screen Media Controls in GNOME 49 (Ubuntu 25.10, Fedora 43)
This tutorial shows how to disable the media controls in the lock screen of GNOME 49 desktop in Ubuntu 25.10, Fedora 43
6 things Windows users always get wrong about Linux (and what’s actually true)
There are many misconceptions about Linux
This Linux distro is for people who just want games to work
There's no shortage of gaming-focused Linux distros right now
3 must-try tools if you want Windows-like desktop widgets on Ubuntu
During a recent visit to Stack Exchange's Unix and Linux section
I Thought This Wikipedia App for Linux was Pointless (I Was Wrong)
When I saw Wike in the GNOME Software store, I thought
Free and Open Source Software, howtos and Installations
This is free and open source software
Debian Urgently Seeks Volunteers After Data Protection Team Resigns
Debian seeks contributors interested in privacy to restore its Data Protection Team after all members stepped back
Games: Humble Bundle, More Gaming Handhelds Running GNU/Linux, SteamOS 3.7.19
9 picks from GamingOnLinux
Fedora 44 Will Be the First Distro to Adopt KDE's Plasma Login Manager
KDE recently announced that Plasma 6.8 will drop X11 support completely
Try Joplin: Your Open Source Evernote Alternative
If you rely heavily on note-taking apps and want to switch from a proprietary to an open-source solution
One Week of 2026 [original]
It has now been 7 days in the new year
Recent HowTos From Make Tech Easier
4 recent articles
GNU/Linux and Hardware Leftovers
mostly GNU/Linux
Free, Libre, and Open Source Software and Programming Leftovers
FOSS and more
Recent Valnet Articles on GNU/Linux Work Through the Shell/Bash/Terminal
5 recent articles
Simon Batt's (Valnet) Journey Through GNU/Linux Distros, Including One on a Floppy Disk
a pair of recent articles
5 tiny Linux tools that replace big, heavy apps
It just works, and that's enough
Red Hat: Elections in Fedora, systemd Update, and Flathub Record
IBM et al
Linux package managers beat the Microsoft Store in every way
And it's not even close
6 Linux distros that are perfect for rescuing your PC
Whether it's destined for a closet or a landfill, these distros can be a perfect way to keep your PC alive
System76's Rust-based COSMIC desktop for Linux is here — and it's amazing
Most of the Linux distros I usually recommend to people tend to either use GNOME or KDE. Those 2 dominate the space
Newly discovered Unix V4 tape
UNIX is sort of back
Kernel: BPF, Memory Use, and "Episode 29 of the Dirk and Linus show"
Linux coverage from LWN
Red Hat, Bazaar (Flatpak), and Hey Hi (AI) Hype Instead of GNU/Linux or FOSS
IBM stuff
Today in Techrights
Some of the latest articles