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

* js/parseopt-subcommand-autocorrection:
  SQUASH???
  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 'pt/fsmonitor-linux' into seen</title>
<updated>2026-05-18T05:28:59Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-05-18T05:28:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7001bdddc52b67f531fd3dcad73683637bc3b794'/>
<id>urn:sha1:7001bdddc52b67f531fd3dcad73683637bc3b794</id>
<content type='text'>
The fsmonitor daemon has been implemented for Linux.

* pt/fsmonitor-linux:
  fsmonitor: convert shown khash to strset in do_handle_client
  fsmonitor: add tests for Linux
  fsmonitor: add timeout to daemon stop command
  fsmonitor: close inherited file descriptors and detach in daemon
  run-command: add close_fd_above_stderr option
  fsmonitor: implement filesystem change listener for Linux
  fsmonitor: rename fsm-settings-darwin.c to fsm-settings-unix.c
  fsmonitor: rename fsm-ipc-darwin.c to fsm-ipc-unix.c
  fsmonitor: use pthread_cond_timedwait for cookie wait
  compat/win32: add pthread_cond_timedwait
  fsmonitor: fix hashmap memory leak in fsmonitor_run_daemon
  fsmonitor: fix khash memory leak in do_handle_client
  t9210, t9211: disable GIT_TEST_SPLIT_INDEX for scalar clone tests
</content>
</entry>
<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>
</feed>
