<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Makefile, branch jch</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=jch</id>
<link rel='self' href='https://git.shady.money/git/atom?h=jch'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2026-04-17T04:27:20Z</updated>
<entry>
<title>Merge branch 'js/parseopt-subcommand-autocorrection' into jch</title>
<updated>2026-04-17T04:27:20Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-04-17T04:27:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8dd4eed84bfa07d9ecab33ad6825111669775d0d'/>
<id>urn:sha1:8dd4eed84bfa07d9ecab33ad6825111669775d0d</id>
<content type='text'>
The parse-options library learned to auto-correct misspelled
subcommand names.

* js/parseopt-subcommand-autocorrection:
  doc: document autocorrect API
  parseopt: add tests for subcommand autocorrection
  parseopt: enable subcommand autocorrection for git-remote and git-notes
  parseopt: autocorrect mistyped subcommands
  autocorrect: provide config resolution API
  autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT
  autocorrect: use mode and delay instead of magic numbers
  help: move tty check for autocorrection to autocorrect.c
  help: make autocorrect handling reusable
  parseopt: extract subcommand handling from parse_options_step()
</content>
</entry>
<entry>
<title>Merge branch 'bc/rust-by-default' into jch</title>
<updated>2026-04-17T04:27:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-04-17T04:27:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=085f5c5c89ae6fc665d0572abdee0bb3f0ab5242'/>
<id>urn:sha1:085f5c5c89ae6fc665d0572abdee0bb3f0ab5242</id>
<content type='text'>
Rust support is enabled by default (but still allows opting out) in
some future version of Git.

* bc/rust-by-default:
  Enable Rust by default
  Linux: link against libdl
  ci: install cargo on Alpine
  docs: update version with default Rust support
</content>
</entry>
<entry>
<title>Merge branch 'ar/parallel-hooks' into jch</title>
<updated>2026-04-17T04:27:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-04-17T04:27:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ce948590769dd99ef499149c259f775837c5abce'/>
<id>urn:sha1:ce948590769dd99ef499149c259f775837c5abce</id>
<content type='text'>
* ar/parallel-hooks:
  t1800: test SIGPIPE with parallel hooks
  hook: allow hook.jobs=-1 to use all available CPU cores
  hook: add hook.&lt;event&gt;.enabled switch
  hook: move is_known_hook() to hook.c for wider use
  hook: warn when hook.&lt;friendly-name&gt;.jobs is set
  hook: add per-event jobs config
  hook: add -j/--jobs option to git hook run
  hook: mark non-parallelizable hooks
  hook: allow pre-push parallel execution
  hook: allow parallel hook execution
  hook: parse the hook.jobs config
  config: add a repo_config_get_uint() helper
  repository: fix repo_init() memleak due to missing _clear()
</content>
</entry>
<entry>
<title>hook: move is_known_hook() to hook.c for wider use</title>
<updated>2026-04-10T14:58:54Z</updated>
<author>
<name>Adrian Ratiu</name>
<email>adrian.ratiu@collabora.com</email>
</author>
<published>2026-04-10T09:06:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2eb541e8f2a9b0dd923279421c741d0a0c00420d'/>
<id>urn:sha1:2eb541e8f2a9b0dd923279421c741d0a0c00420d</id>
<content type='text'>
Move is_known_hook() from builtin/hook.c (static) into hook.c and
export it via hook.h so it can be reused.

Make it return bool and the iterator `h` for clarity (iterate hooks).

Both meson.build and the Makefile are updated to reflect that the
header is now used by libgit, not the builtin sources.

The next commit will use this to reject hook friendly-names that
collide with known event names.

Co-authored-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Adrian Ratiu &lt;adrian.ratiu@collabora.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Enable Rust by default</title>
<updated>2026-04-10T00:25:36Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2026-04-09T22:44:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=32d5b905909e781786c4735e6bd71503b23e4fb1'/>
<id>urn:sha1:32d5b905909e781786c4735e6bd71503b23e4fb1</id>
<content type='text'>
Our breaking changes document says that we'll enable Rust by default in
Git 2.54.  Adjust the Makefile to switch the option from WITH_RUST to
NO_RUST to enable it by default and update the help text accordingly.
Similarly, for Meson, enable the option by default and do not
automatically disable it if Cargo is missing, since the goal is to help
users find where they are likely to have problems in the future.

Update our CI tests to swap out the single Linux job with Rust to a
single job without, both for Makefile and Meson.  Similarly, update the
Windows Makefile job to not use Rust, while the Meson job (which does
not build with ci/lib.sh) will default to having it enabled.

Move the check for Cargo in the Meson build because it is no longer
needed in the main script.

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Revert "compat/posix: introduce writev(3p) wrapper"</title>
<updated>2026-04-09T21:48:24Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-04-09T21:48:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7798034171030be0909c56377a4e0e10e6d2df93'/>
<id>urn:sha1:7798034171030be0909c56377a4e0e10e6d2df93</id>
<content type='text'>
This reverts commit 3b9b2c2a29a1d529ca9884fa0a6529f6e2496abe; let's
not use writev() for now.
</content>
</entry>
<entry>
<title>Merge branch 'ar/config-hook-cleanups'</title>
<updated>2026-04-03T20:01:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-04-03T20:01:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0cd4fb9f46eb0ebd0d243a886ce9a52210e0723e'/>
<id>urn:sha1:0cd4fb9f46eb0ebd0d243a886ce9a52210e0723e</id>
<content type='text'>
Code clean-up around the recent "hooks defined in config" topic.

* ar/config-hook-cleanups:
  hook: reject unknown hook names in git-hook(1)
  hook: show disabled hooks in "git hook list"
  hook: show config scope in git hook list
  hook: introduce hook_config_cache_entry for per-hook data
  t1800: add test to verify hook execution ordering
  hook: make consistent use of friendly-name in docs
  hook: replace hook_list_clear() -&gt; string_list_clear_func()
  hook: detect &amp; emit two more bugs
  hook: rename cb_data_free/alloc -&gt; hook_data_free/alloc
  hook: fix minor style issues
  builtin/receive-pack: properly init receive_hook strbuf
  hook: move unsorted_string_list_remove() to string-list.[ch]
</content>
</entry>
<entry>
<title>Merge branch 'ps/build-tweaks'</title>
<updated>2026-03-27T18:00:01Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-03-27T18:00:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d1f07dd50087bef18246feffb963d73b23e2cdd6'/>
<id>urn:sha1:d1f07dd50087bef18246feffb963d73b23e2cdd6</id>
<content type='text'>
Tweak the build infrastructure by moving tools around.

* ps/build-tweaks:
  meson: precompile "git-compat-util.h"
  meson: compile compatibility sources separately
  git-compat-util.h: move warning infra to prepare for PCHs
  builds: move build scripts into "tools/"
  contrib: move "update-unicode.sh" script into "tools/"
  contrib: move "coverage-diff.sh" script into "tools/"
  contrib: move "coccinelle/" directory into "tools/"
  Introduce new "tools/" directory
</content>
</entry>
<entry>
<title>hook: reject unknown hook names in git-hook(1)</title>
<updated>2026-03-25T21:00:48Z</updated>
<author>
<name>Adrian Ratiu</name>
<email>adrian.ratiu@collabora.com</email>
</author>
<published>2026-03-25T19:55:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5c58dbc887a1f3530cb29c995f63675beebb22e9'/>
<id>urn:sha1:5c58dbc887a1f3530cb29c995f63675beebb22e9</id>
<content type='text'>
Teach "git hook run" and "git hook list" to reject hook event names
that are not recognized by Git. This helps catch typos such as
"prereceive" when "pre-receive" was intended, since in 99% of the
cases users want known (already-existing) hook names.

The list of known hooks is derived from the generated hook-list.h
(built from Documentation/githooks.adoc). This is why the Makefile
is updated, so builtin/hook.c depends on hook-list.h. In meson the
header is already a dependency for all builtins, no change required.

The "--allow-unknown-hook-name" flag can be used to bypass this check.

Suggested-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Adrian Ratiu &lt;adrian.ratiu@collabora.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ps/upload-pack-buffer-more-writes'</title>
<updated>2026-03-24T19:31:34Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-03-24T19:31:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8023abc632ea45a9a1b7f78b13db2cf541849775'/>
<id>urn:sha1:8023abc632ea45a9a1b7f78b13db2cf541849775</id>
<content type='text'>
Reduce system overhead "git upload-pack" spends on relaying "git
pack-objects" output to the "git fetch" running on the other end of
the connection.

* ps/upload-pack-buffer-more-writes:
  builtin/pack-objects: reduce lock contention when writing packfile data
  csum-file: drop `hashfd_throughput()`
  csum-file: introduce `hashfd_ext()`
  sideband: use writev(3p) to send pktlines
  wrapper: introduce writev(3p) wrappers
  compat/posix: introduce writev(3p) wrapper
  upload-pack: reduce lock contention when writing packfile data
  upload-pack: prefer flushing data over sending keepalive
  upload-pack: adapt keepalives based on buffering
  upload-pack: fix debug statement when flushing packfile data
</content>
</entry>
</feed>
