<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-05-17T13:58:49Z</updated>
<entry>
<title>Merge branch 'ps/odb-in-memory' into jch</title>
<updated>2026-05-17T13:58:49Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-05-17T13:58:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=bde06d0ab28301b38fee4ec67d9ae2a0b7d08f25'/>
<id>urn:sha1:bde06d0ab28301b38fee4ec67d9ae2a0b7d08f25</id>
<content type='text'>
Add a new odb "in-memory" source that is meant to only hold
tentative objects (like the virtual blob object that represents the
working tree file used by "git blame").

* ps/odb-in-memory:
  t/unit-tests: add tests for the in-memory object source
  odb: generic in-memory source
  odb/source-inmemory: stub out remaining functions
  odb/source-inmemory: implement `freshen_object()` callback
  odb/source-inmemory: implement `count_objects()` callback
  odb/source-inmemory: implement `find_abbrev_len()` callback
  odb/source-inmemory: implement `for_each_object()` callback
  odb/source-inmemory: convert to use oidtree
  oidtree: add ability to store data
  cbtree: allow using arbitrary wrapper structures for nodes
  odb/source-inmemory: implement `write_object_stream()` callback
  odb/source-inmemory: implement `write_object()` callback
  odb/source-inmemory: implement `read_object_stream()` callback
  odb/source-inmemory: implement `read_object_info()` callback
  odb: fix unnecessary call to `find_cached_object()`
  odb/source-inmemory: implement `free()` callback
  odb: introduce "in-memory" source
</content>
</entry>
<entry>
<title>Merge branch 'jt/odb-transaction-write' into jch</title>
<updated>2026-05-17T13:58:48Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-05-17T13:58:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9465e7902b82b1a46a41eef3231906fb437c9228'/>
<id>urn:sha1:9465e7902b82b1a46a41eef3231906fb437c9228</id>
<content type='text'>
ODB transaction interface is being reworked to explicitly handle
object writes.

* jt/odb-transaction-write:
  odb/transaction: make `write_object_stream()` pluggable
  object-file: generalize packfile writes to use odb_write_stream
  object-file: avoid fd seekback by checking object size upfront
  object-file: remove flags from transaction packfile writes
  odb: update `struct odb_write_stream` read() callback
  odb/transaction: use pluggable `begin_transaction()`
  odb: split `struct odb_transaction` into separate header
</content>
</entry>
<entry>
<title>Merge branch 'mm/git-url-parse' into jch</title>
<updated>2026-05-17T13:58:44Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-05-17T13:58:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=cea30558198aa6622d25c8d835ab00f3176cca4e'/>
<id>urn:sha1:cea30558198aa6622d25c8d835ab00f3176cca4e</id>
<content type='text'>
The internal URL parsing logic has been made accessible via a new
subcommand "git url-parse".

* mm/git-url-parse:
  t9904: add tests for the new url-parse builtin
  doc: describe the url-parse builtin
  builtin: create url-parse command
  urlmatch: define url_parse function
  url: return URL_SCHEME_UNKNOWN instead of dying
  url: move scheme detection to URL header/source
  url: move url_is_local_not_ssh to url.h
  connect: rename enum protocol to url_scheme
</content>
</entry>
<entry>
<title>Merge branch 'js/mingw-no-nedmalloc' into jch</title>
<updated>2026-05-17T13:58:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-05-17T13:58:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9d7e9747f5c2769a6ab01676a8c55a167f16d690'/>
<id>urn:sha1:9d7e9747f5c2769a6ab01676a8c55a167f16d690</id>
<content type='text'>
Stop using unmaintained custom allocator in Windows build which was
the last user of the code.

* js/mingw-no-nedmalloc:
  mingw: remove the vendored compat/nedmalloc/ subtree
  mingw: drop the build-system plumbing for nedmalloc
  mingw: stop using nedmalloc
</content>
</entry>
<entry>
<title>Merge branch 'js/objects-larger-than-4gb-on-windows' into jch</title>
<updated>2026-05-17T13:58:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-05-17T13:58:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=06d915a85887e2500be0ed66f4411091d2bc2ed8'/>
<id>urn:sha1:06d915a85887e2500be0ed66f4411091d2bc2ed8</id>
<content type='text'>
Update code paths that assumed "unsigned long" was long enough for
"size_t".

* js/objects-larger-than-4gb-on-windows:
  ci: run expensive tests on push builds to integration branches
  t5608: mark &gt;4GB tests as EXPENSIVE
  test-tool synthesize: add precomputed SHA-256 pack for 4 GiB + 1
  test-tool synthesize: precompute pack for 4 GiB + 1
  test-tool synthesize: use the unsafe hash for speed
  t5608: add regression test for &gt;4GB object clone
  test-tool: add a helper to synthesize large packfiles
  delta, packfile: use size_t for delta header sizes
  odb, packfile: use size_t for streaming object sizes
  git-zlib: handle data streams larger than 4GB
  index-pack, unpack-objects: use size_t for object size
</content>
</entry>
<entry>
<title>Merge branch 'kh/name-rev-custom-format' into jch</title>
<updated>2026-05-17T13:58:38Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-05-17T13:58:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ce6461735855c18bc4011c145389220dd652b3aa'/>
<id>urn:sha1:ce6461735855c18bc4011c145389220dd652b3aa</id>
<content type='text'>
A new builtin "git format-rev" is introduced for pretty formatting
one revision expression per line or commit object names found in
running text.

* kh/name-rev-custom-format:
  format-rev: introduce builtin for on-demand pretty formatting
  name-rev: make dedicated --annotate-stdin --name-only test
  name-rev: factor code for sharing with a new command
  name-rev: run clang-format before factoring code
  name-rev: wrap both blocks in braces
</content>
</entry>
<entry>
<title>t/unit-tests: add tests for the in-memory object source</title>
<updated>2026-05-14T19:50:45Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2026-04-10T12:12:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d2902a45498793f8dc69abc6448f517b69437eec'/>
<id>urn:sha1:d2902a45498793f8dc69abc6448f517b69437eec</id>
<content type='text'>
While the in-memory object source is a full-fledged source, our code
base only exercises parts of its functionality because we only use it in
git-blame(1). Implement unit tests to verify that the yet-unused
functionality of the backend works as expected.

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>odb: introduce "in-memory" source</title>
<updated>2026-05-14T19:50:44Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2026-04-10T12:12:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=822d403651aa6baff064095f98d8d8349d876eb8'/>
<id>urn:sha1:822d403651aa6baff064095f98d8d8349d876eb8</id>
<content type='text'>
Next to our typical object database sources, each object database also
has an implicit source of "cached" objects. These cached objects only
exist in memory and some use cases:

  - They contain evergreen objects that we expect to always exist, like
    for example the empty tree.

  - They can be used to store temporary objects that we don't want to
    persist to disk, which is used by git-blame(1) to create a fake
    worktree commit.

Overall, their use is somewhat restricted though. For example, we don't
provide the ability to use it as a temporary object database source that
allows the user to write objects, but discard them after Git exists. So
while these cached objects behave almost like a source, they aren't used
as one.

This is about to change over the following commits, where we will turn
cached objects into a new "in-memory" source. This will allow us to use
it exactly the same as any other source by providing the same common
interface as the "files" source.

For now, the in-memory source only hosts the cached objects and doesn't
provide any logic yet. This will change with subsequent commits, where
we move respective functionality into the source.

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>Merge branch 'jt/odb-transaction-write' into ps/odb-in-memory</title>
<updated>2026-05-14T19:50:31Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-05-14T19:50:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2f124686e85efe25006e485588000d576f0c0b4f'/>
<id>urn:sha1:2f124686e85efe25006e485588000d576f0c0b4f</id>
<content type='text'>
* jt/odb-transaction-write:
  odb/transaction: make `write_object_stream()` pluggable
  object-file: generalize packfile writes to use odb_write_stream
  object-file: avoid fd seekback by checking object size upfront
  object-file: remove flags from transaction packfile writes
  odb: update `struct odb_write_stream` read() callback
  odb/transaction: use pluggable `begin_transaction()`
  odb: split `struct odb_transaction` into separate header
</content>
</entry>
<entry>
<title>odb: split `struct odb_transaction` into separate header</title>
<updated>2026-05-14T19:44:39Z</updated>
<author>
<name>Justin Tobler</name>
<email>jltobler@gmail.com</email>
</author>
<published>2026-05-14T18:37:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5f6744d3eba6264ce78c8b507b1a1d3c0e540c37'/>
<id>urn:sha1:5f6744d3eba6264ce78c8b507b1a1d3c0e540c37</id>
<content type='text'>
The current ODB transaction interface is colocated with other ODB
interfaces in "odb.{c,h}". Subsequent commits will expand `struct
odb_transaction` to support write operations on the transaction
directly. To keep things organized and prevent "odb.{c,h}" from becoming
more unwieldy, split out `struct odb_transaction` into a separate
header.

Signed-off-by: Justin Tobler &lt;jltobler@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
