<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Makefile, branch v2.52.0</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.52.0</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.52.0'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2025-10-29T19:38:24Z</updated>
<entry>
<title>Merge branch 'tb/incremental-midx-part-3.1'</title>
<updated>2025-10-29T19:38:24Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-10-29T19:38:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c1b23bd8aaa3856695e0361f52f1a44301d1c317'/>
<id>urn:sha1:c1b23bd8aaa3856695e0361f52f1a44301d1c317</id>
<content type='text'>
Clean-up "git repack" machinery to prepare for incremental update
of midx files.

* tb/incremental-midx-part-3.1: (49 commits)
  builtin/repack.c: clean up unused `#include`s
  repack: move `write_cruft_pack()` out of the builtin
  repack: move `write_filtered_pack()` out of the builtin
  repack: move `pack_kept_objects` to `struct pack_objects_args`
  repack: move `finish_pack_objects_cmd()` out of the builtin
  builtin/repack.c: pass `write_pack_opts` to `finish_pack_objects_cmd()`
  repack: extract `write_pack_opts_is_local()`
  repack: move `find_pack_prefix()` out of the builtin
  builtin/repack.c: use `write_pack_opts` within `write_cruft_pack()`
  builtin/repack.c: introduce `struct write_pack_opts`
  repack: 'write_midx_included_packs' API from the builtin
  builtin/repack.c: inline packs within `write_midx_included_packs()`
  builtin/repack.c: pass `repack_write_midx_opts` to `midx_included_packs`
  builtin/repack.c: inline `remove_redundant_bitmaps()`
  builtin/repack.c: reorder `remove_redundant_bitmaps()`
  repack: keep track of MIDX pack names using existing_packs
  builtin/repack.c: use a string_list for 'midx_pack_names'
  builtin/repack.c: extract opts struct for 'write_midx_included_packs()'
  builtin/repack.c: remove ref snapshotting from builtin
  repack: remove pack_geometry API from the builtin
  ...
</content>
</entry>
<entry>
<title>Merge branch 'ps/ci-rust'</title>
<updated>2025-10-28T17:29:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-10-28T17:29:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fe95c55549380c2bb52a839f127886702d7f1f4a'/>
<id>urn:sha1:fe95c55549380c2bb52a839f127886702d7f1f4a</id>
<content type='text'>
CI improvements to handle the recent Rust integration better.

* ps/ci-rust:
  rust: support for Windows
  ci: verify minimum supported Rust version
  ci: check for common Rust mistakes via Clippy
  rust/varint: add safety comments
  ci: check formatting of our Rust code
  ci: deduplicate calls to `apt-get update`
</content>
</entry>
<entry>
<title>Merge branch 'en/make-libgit-a'</title>
<updated>2025-10-17T21:02:16Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-10-17T21:02:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=282a9684ab6f176e830665ca1071a85d59bb6665'/>
<id>urn:sha1:282a9684ab6f176e830665ca1071a85d59bb6665</id>
<content type='text'>
Instead of three library archives (one for git, one for reftable,
and one for xdiff), roll everything into a single libgit.a archive.
This would help later effort to FFI into Rust.

* en/make-libgit-a:
  make: delete REFTABLE_LIB, add reftable to LIB_OBJS
  make: delete XDIFF_LIB, add xdiff to LIB_OBJS
</content>
</entry>
<entry>
<title>repack: move `write_cruft_pack()` out of the builtin</title>
<updated>2025-10-16T17:08:57Z</updated>
<author>
<name>Taylor Blau</name>
<email>me@ttaylorr.com</email>
</author>
<published>2025-10-15T22:29:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=09797bd9666bb9cc6232e414498578deb2697c2a'/>
<id>urn:sha1:09797bd9666bb9cc6232e414498578deb2697c2a</id>
<content type='text'>
In an identical fashion as the previous commit, move the function
`write_cruft_pack()` into its own compilation unit, and make the
function visible through the repack.h API.

Signed-off-by: Taylor Blau &lt;me@ttaylorr.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>repack: move `write_filtered_pack()` out of the builtin</title>
<updated>2025-10-16T17:08:57Z</updated>
<author>
<name>Taylor Blau</name>
<email>me@ttaylorr.com</email>
</author>
<published>2025-10-15T22:29:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7ac4231b4283f4f8dc8447439730a5a2b8ed7eb4'/>
<id>urn:sha1:7ac4231b4283f4f8dc8447439730a5a2b8ed7eb4</id>
<content type='text'>
In a similar fashion as in previous commits, move the function
`write_filtered_pack()` out of the builtin and into its own compilation
unit.

This function is now part of the repack.h API, but implemented in its
own "repack-filtered.c" unit as it is a separate component from other
kinds of repacking operations.

Signed-off-by: Taylor Blau &lt;me@ttaylorr.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>builtin/repack.c: remove ref snapshotting from builtin</title>
<updated>2025-10-16T17:08:55Z</updated>
<author>
<name>Taylor Blau</name>
<email>me@ttaylorr.com</email>
</author>
<published>2025-10-15T22:28:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ccb7f822d520472026a12250e1390683706a8154'/>
<id>urn:sha1:ccb7f822d520472026a12250e1390683706a8154</id>
<content type='text'>
When writing a MIDX, 'git repack' takes a snapshot of the repository's
references and writes the result out to a file, which it then passes to
'git multi-pack-index write' via the '--refs-snapshot'.

This is done in order to make bitmap selections with respect to what we
are packing, thus avoiding a race where an incoming reference update
causes us to try and write a bitmap for a commit not present in the
MIDX.

Extract this functionality out into a new repack-midx.c compilation
unit, and expose the necessary functions via the repack.h API.

Signed-off-by: Taylor Blau &lt;me@ttaylorr.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>repack: remove pack_geometry API from the builtin</title>
<updated>2025-10-16T17:08:55Z</updated>
<author>
<name>Taylor Blau</name>
<email>me@ttaylorr.com</email>
</author>
<published>2025-10-15T22:28:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=62d3fa09b3890631af7c572cb6132088a14d2653'/>
<id>urn:sha1:62d3fa09b3890631af7c572cb6132088a14d2653</id>
<content type='text'>
Now that the pack_geometry API is fully factored and isolated from the
rest of the builtin, declare it within repack.h and move its
implementation to "repack-geometry.c" as a separate component.

Signed-off-by: Taylor Blau &lt;me@ttaylorr.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>builtin/repack.c: remove "repack_promisor_objects()" from the builtin</title>
<updated>2025-10-16T17:08:55Z</updated>
<author>
<name>Taylor Blau</name>
<email>me@ttaylorr.com</email>
</author>
<published>2025-10-15T22:28:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=29e935515d1b49fa08b2781371625e5c55d2bf13'/>
<id>urn:sha1:29e935515d1b49fa08b2781371625e5c55d2bf13</id>
<content type='text'>
Now that we have properly factored the portion of the builtin which is
responsible for repacking promisor objects, we can move that function
(and associated dependencies) out of the builtin entirely.

Similar to previous extractions, this function is declared in repack.h,
but implemented in a separate repack-promisor.c file. This is done to
separate promisor-specific repacking functionality from generic repack
utilities (like "existing_packs", and "generated_pack" APIs).

Signed-off-by: Taylor Blau &lt;me@ttaylorr.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>repack: introduce new compilation unit</title>
<updated>2025-10-16T17:08:53Z</updated>
<author>
<name>Taylor Blau</name>
<email>me@ttaylorr.com</email>
</author>
<published>2025-10-15T22:27:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c7a120722ed60c07fa6a32f43b56f8361bfe38af'/>
<id>urn:sha1:c7a120722ed60c07fa6a32f43b56f8361bfe38af</id>
<content type='text'>
Over the years, builtin/repack.c has turned into a grab-bag of
functionality powering the 'git repack' builtin. Among its many
capabilities, it:

 - can build and spawn 'git pack-objects' commands, which in turn
   generate new packs
 - has infrastructure to manage the set of existing packs in a
   repository
 - has infrastructure to split a sequence of packs into a geometric
   progression based on object size
 - can manage both generating and combining cruft packs together
 - can write new MIDXs

to name a few.

As a result, this builtin has accumulated a lot of code, making adding
new functionality difficult. In the future, 'repack' will learn how to
manage a chain of incremental MIDXs, adding yet more functionality into
the builtin.

As a prerequisite step, let's first move some of the functionality in
the builtin into its own repack.[ch].

This will be done over the course of many steps, since there are many
individual components, some of which will end up in other, yet-to-exist
compilation units of their own. Some of the code movement here is also
non-trivial, so performing it in individual steps will make it easier to
verify.

Let's start by migrating 'struct pack_objects_args' (and the related
corresponding pack_objects_args_release() function) into repack.h, and
teach both the Makefile and Meson how to build the new compilation unit.

Signed-off-by: Taylor Blau &lt;me@ttaylorr.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rust: support for Windows</title>
<updated>2025-10-15T15:10:17Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2025-10-15T06:04:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e509b5b8be0f17467dcc75130f941d84a09d96a3'/>
<id>urn:sha1:e509b5b8be0f17467dcc75130f941d84a09d96a3</id>
<content type='text'>
The initial patch series that introduced Rust into the core of Git only
cared about macOS and Linux. This specifically leaves out Windows, which
indeed fails to build right now due to two issues:

  - The Rust runtime requires `GetUserProfileDirectoryW()`, but we don't
    link against "userenv.dll".

  - The path of the Rust library built on Windows is different than on
    most other systems systems.

Fix both of these issues to support Windows.

Note that this commit fixes the Meson-based job in GitHub's CI. Meson
auto-detects the availability of Rust, and as the Windows runner has
Rust installed by default it already enabled Rust support there. But due
to the above issues that job fails consistently.

Install Rust on GitLab CI, as well, to improve test coverage there.

Based-on-patch-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Based-on-patch-by: Ezekiel Newren &lt;ezekielnewren@gmail.com&gt;
Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
