<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/wrapper.c, 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-09T21:48:09Z</updated>
<entry>
<title>Revert "wrapper: introduce writev(3p) wrappers"</title>
<updated>2026-04-09T21:48:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-04-09T21:48:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=dc1b8b2cc8da78c592a54ee4ca3776a7f83cbd31'/>
<id>urn:sha1:dc1b8b2cc8da78c592a54ee4ca3776a7f83cbd31</id>
<content type='text'>
This reverts commit 1970fcef93adcc5a35f6468d00a5a634d5af2b3c; let's
not use writev() for now.
</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>
<entry>
<title>wrapper: introduce writev(3p) wrappers</title>
<updated>2026-03-13T15:54:14Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2026-03-13T06:45:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1970fcef93adcc5a35f6468d00a5a634d5af2b3c'/>
<id>urn:sha1:1970fcef93adcc5a35f6468d00a5a634d5af2b3c</id>
<content type='text'>
In the preceding commit we have added a compatibility wrapper for the
writev(3p) syscall. Introduce some generic wrappers for this function
that we nowadays take for granted in the Git codebase.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>global: constify some pointers that are not written to</title>
<updated>2026-02-06T01:52:49Z</updated>
<author>
<name>Collin Funk</name>
<email>collin.funk1@gmail.com</email>
</author>
<published>2026-02-06T01:46:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4ac4705afa3ab660e206c2b870bfae2ddb647ffa'/>
<id>urn:sha1:4ac4705afa3ab660e206c2b870bfae2ddb647ffa</id>
<content type='text'>
The recent glibc 2.43 release had the following change listed in its
NEWS file:

    For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr,
    strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return
    pointers into their input arrays now have definitions as macros that
    return a pointer to a const-qualified type when the input argument is
    a pointer to a const-qualified type.

When compiling with GCC 15, which defaults to -std=gnu23, this causes
many warnings like this:

    merge-ort.c: In function ‘apply_directory_rename_modifications’:
    merge-ort.c:2734:36: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
     2734 |                 char *last_slash = strrchr(cur_path, '/');
          |                                    ^~~~~~~

This patch fixes the more obvious ones by making them const when we do
not write to the returned pointer.

Signed-off-by: Collin Funk &lt;collin.funk1@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'rs/ban-mktemp'</title>
<updated>2025-12-16T02:08:35Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-12-16T02:08:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=91bfbf49b6566d2b412d12240336027e351a631c'/>
<id>urn:sha1:91bfbf49b6566d2b412d12240336027e351a631c</id>
<content type='text'>
Rewrite the only use of "mktemp()" that is subject to TOCTOU race
and Stop using the insecure "mktemp()" function.

* rs/ban-mktemp:
  compat: remove gitmkdtemp()
  banned.h: ban mktemp(3)
  compat: remove mingw_mktemp()
  compat: use git_mkdtemp()
  wrapper: add git_mkdtemp()
</content>
</entry>
<entry>
<title>wrapper: add git_mkdtemp()</title>
<updated>2025-12-06T22:28:11Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2025-12-06T13:27:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e1ecf0dd6897eae1594b7e9345605b8f88485b95'/>
<id>urn:sha1:e1ecf0dd6897eae1594b7e9345605b8f88485b95</id>
<content type='text'>
Extend git_mkstemps_mode() to optionally call mkdir(2) instead of
open(2), then use that ability to create a mkdtemp(3) replacement,
git_mkdtemp().  We'll start using it in the next commit.

Signed-off-by: René Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'rs/xmkstemp-simplify'</title>
<updated>2025-11-26T18:32:40Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-11-26T18:32:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=370470e240b5c855af32f7123de3f1e612b0d2b7'/>
<id>urn:sha1:370470e240b5c855af32f7123de3f1e612b0d2b7</id>
<content type='text'>
Code simplification.

* rs/xmkstemp-simplify:
  wrapper: simplify xmkstemp()
</content>
</entry>
<entry>
<title>wrapper: simplify xmkstemp()</title>
<updated>2025-11-17T21:53:09Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2025-11-17T19:42:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f18aa68861538e93421699aa366d6691a85258b6'/>
<id>urn:sha1:f18aa68861538e93421699aa366d6691a85258b6</id>
<content type='text'>
Call xmkstemp_mode() instead of duplicating its error handling code.
This switches the implementation from the system's mkstemp(3) to our own
git_mkstemp_mode(), which works just as well.

Signed-off-by: René Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>config: values of pathname type can be prefixed with :(optional)</title>
<updated>2025-10-07T17:05:48Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-09-28T21:29:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=749d6d166d8e3ea0ae32ede25f9aa23aa3b5e42b'/>
<id>urn:sha1:749d6d166d8e3ea0ae32ede25f9aa23aa3b5e42b</id>
<content type='text'>
Sometimes people want to specify additional configuration data
as "best effort" basis.  Maybe commit.template configuration file points
at somewhere in ~/template/ but on a particular system, the file may not
exist and the user may be OK without using the template in such a case.

When the value given to a configuration variable whose type is
pathname wants to signal such an optional file, it can be marked by
prepending ":(optional)" in front of it.  Such a setting that is
marked optional would avoid getting the command barf for a missing
file, as an optional configuration setting that names a missing
file is not even seen.

cf. &lt;xmqq5ywehb69.fsf@gitster.g&gt;

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: Taylor Blau &lt;me@ttaylorr.com&gt;
Signed-off-by: D. Ben Knoble &lt;ben.knoble+github@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'cf/wrapper-bsd-eloop'</title>
<updated>2025-05-16T00:24:55Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-05-16T00:24:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1d01042e314c0965845cae1fbcd0bc7e21f1b608'/>
<id>urn:sha1:1d01042e314c0965845cae1fbcd0bc7e21f1b608</id>
<content type='text'>
The fallback implementation of open_nofollow() depended on
open("symlink", O_NOFOLLOW) to set errno to ELOOP, but a few BSD
derived systems use different errno, which has been worked around.

* cf/wrapper-bsd-eloop:
  wrapper: NetBSD gives EFTYPE and FreeBSD gives EMFILE where POSIX uses ELOOP
</content>
</entry>
</feed>
