<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Documentation/technical, branch v2.50.0</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.50.0</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.50.0'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2025-06-02T16:25:34Z</updated>
<entry>
<title>Merge branch 'wk/sparse-checkout-doc-fix'</title>
<updated>2025-06-02T16:25:34Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-06-02T16:25:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3624591b84ad76e5dacb94439b2ab81cdfecf8d1'/>
<id>urn:sha1:3624591b84ad76e5dacb94439b2ab81cdfecf8d1</id>
<content type='text'>
Doc update.

* wk/sparse-checkout-doc-fix:
  doc: sparse-checkout: use consistent inline list style
</content>
</entry>
<entry>
<title>doc: sparse-checkout: use consistent inline list style</title>
<updated>2025-05-30T16:54:18Z</updated>
<author>
<name>Wonuk Kim</name>
<email>kimww0306@gmail.com</email>
</author>
<published>2025-05-30T07:22:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=cea9f55f00eaf5413d086c8ffc40ceb1c69d23e3'/>
<id>urn:sha1:cea9f55f00eaf5413d086c8ffc40ceb1c69d23e3</id>
<content type='text'>
Fix this inline list to use a single style, namely numeric, instead of
`(1)` followed by `(b)`.

Signed-off-by: Wonuk Kim &lt;kimww0306@gmail.com&gt;
Acked-by: Kristoffer Haugsbakk &lt;kristofferhaugsbakk@fastmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'sc/bundle-uri-use-all-refs-in-bundle'</title>
<updated>2025-05-19T23:02:45Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-05-19T23:02:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4bb72548fcf486e136029005c7087cbb7e0404f6'/>
<id>urn:sha1:4bb72548fcf486e136029005c7087cbb7e0404f6</id>
<content type='text'>
Bundle-URI feature did not use refs recorded in the bundle other
than normal branches as anchoring points to optimize the follow-up
fetch during "git clone"; now it is told to utilize all.

* sc/bundle-uri-use-all-refs-in-bundle:
  bundle-uri: add test for bundle-uri clones with tags
  bundle-uri: copy all bundle references ino the refs/bundle space
</content>
</entry>
<entry>
<title>bundle-uri: copy all bundle references ino the refs/bundle space</title>
<updated>2025-04-25T20:36:45Z</updated>
<author>
<name>Scott Chacon</name>
<email>schacon@gmail.com</email>
</author>
<published>2025-04-25T19:33:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c858c6442b53fc9b7e79923546668fe38fe2c58d'/>
<id>urn:sha1:c858c6442b53fc9b7e79923546668fe38fe2c58d</id>
<content type='text'>
When downloading bundles via the bundle-uri functionality, we only copy the
references from refs/heads into the refs/bundle space. I'm not sure why this
refspec is hardcoded to be so limited, but it makes the ref negotiation on
the subsequent fetch suboptimal, since it won't use objects that are
referenced outside of the current heads of the bundled repository.

This change to copy everything in refs/ in the bundle to refs/bundles/
significantly helps the subsequent fetch, since nearly all the references
are now included in the negotiation.

The update to the bundle-uri unbundling refspec puts all the heads from a
bundle file into refs/bundle/heads instead of directly into refs/bundle/ so
the tests also need to be updated to look in the new heirarchy.

Signed-off-by: Scott Chacon &lt;schacon@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ps/parse-options-integers'</title>
<updated>2025-04-25T00:25:34Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-04-25T00:25:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2bc5414c411aab33c155b1070b7764ef6a49a02d'/>
<id>urn:sha1:2bc5414c411aab33c155b1070b7764ef6a49a02d</id>
<content type='text'>
Update parse-options API to catch mistakes to pass address of an
integral variable of a wrong type/size.

* ps/parse-options-integers:
  parse-options: detect mismatches in integer signedness
  parse-options: introduce precision handling for `OPTION_UNSIGNED`
  parse-options: introduce precision handling for `OPTION_INTEGER`
  parse-options: rename `OPT_MAGNITUDE()` to `OPT_UNSIGNED()`
  parse-options: support unit factors in `OPT_INTEGER()`
  global: use designated initializers for options
  parse: fix off-by-one for minimum signed values
</content>
</entry>
<entry>
<title>Merge branch 'en/merge-recursive-debug'</title>
<updated>2025-04-17T17:28:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-04-17T17:28:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c3ebf18eb2deac595bd2550c1076247d8cbf2bc1'/>
<id>urn:sha1:c3ebf18eb2deac595bd2550c1076247d8cbf2bc1</id>
<content type='text'>
Remove remnants of the recursive merge strategy backend, which was
superseded by the ort merge strategy.

* en/merge-recursive-debug:
  builtin/{merge,rebase,revert}: remove GIT_TEST_MERGE_ALGORITHM
  tests: remove GIT_TEST_MERGE_ALGORITHM and test_expect_merge_algorithm
  merge-recursive.[ch]: thoroughly debug these
  merge, sequencer: switch recursive merges over to ort
  sequencer: switch non-recursive merges over to ort
  merge-ort: enable diff-algorithms other than histogram
  builtin/merge-recursive: switch to using merge_ort_generic()
  checkout: replace merge_trees() with merge_ort_nonrecursive()
</content>
</entry>
<entry>
<title>parse-options: rename `OPT_MAGNITUDE()` to `OPT_UNSIGNED()`</title>
<updated>2025-04-17T15:15:15Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2025-04-17T10:49:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=785c17df7817df8512d2cb92cfc079ef0b4de27c'/>
<id>urn:sha1:785c17df7817df8512d2cb92cfc079ef0b4de27c</id>
<content type='text'>
With the preceding commit, `OPT_INTEGER()` has learned to support unit
factors. Consequently, the major differencen between `OPT_INTEGER()` and
`OPT_MAGNITUDE()` isn't the support of unit factors anymore, as both of
them do support them now. Instead, the difference is that one handles
signed and the other handles unsigned integers.

Adapt the name of `OPT_MAGNITUDE()` accordingly by renaming it to
`OPT_UNSIGNED()`.

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>parse-options: support unit factors in `OPT_INTEGER()`</title>
<updated>2025-04-17T15:15:15Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2025-04-17T10:49:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8ff1a34bdfef0a0689130508388325af1db38237'/>
<id>urn:sha1:8ff1a34bdfef0a0689130508388325af1db38237</id>
<content type='text'>
There are two main differences between `OPT_INTEGER()` and
`OPT_MAGNITUDE()`:

  - The former parses signed integers whereas the latter parses unsigned
    integers.

  - The latter parses unit factors like 'k', 'm' or 'g'.

While the first difference makes obvious sense, there isn't really a
good reason why signed integers shouldn't support unit factors, too.

This inconsistency will also become a bit of a problem with subsequent
commits, where we will fix a couple of callsites that pass an unsigned
integer to `OPT_INTEGER()`. There are three options:

  - We could adapt those users to instead pass a signed integer, but
    this would needlessly extend the range of accepted integer values.

  - We could convert them to use `OPT_MAGNITUDE()`, as it only accepts
    unsigned integers. But now we have the inconsistency that we also
    start to accept unit factors.

  - We could introduce `OPT_UNSIGNED()` as equivalent to `OPT_INTEGER()`
    so that it knows to only accept unsigned integers without unit
    suffix.

Introducing a whole new option type feels a bit excessive. There also
isn't really a good reason why `OPT_INTEGER()` cannot be extended to
also accept unit factors: all valid values passed to such options cannot
have a unit factors right now, so there wouldn't be any ambiguity.

Refactor `OPT_INTEGER()` to use `git_parse_int()`, which knows to
interpret unit factors. This removes the inconsistency between the
signed and unsigned options so that we can easily fix up callsites that
pass the wrong integer type right now.

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-recursive.[ch]: thoroughly debug these</title>
<updated>2025-04-08T20:59:13Z</updated>
<author>
<name>Elijah Newren</name>
<email>newren@gmail.com</email>
</author>
<published>2025-04-08T15:48:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ad45b327c0a13718ed5955319d1e735025676cc8'/>
<id>urn:sha1:ad45b327c0a13718ed5955319d1e735025676cc8</id>
<content type='text'>
As a wise man once told me, "Deleted code is debugged code!"  So, move
the functions that are shared between merge-recursive and merge-ort from
the former to the latter, and then debug the remainder of
merge-recursive.[ch].

Joking aside, merge-ort was always intended to replace merge-recursive.
It has numerous advantages over merge-recursive (operates much faster,
can operate without a worktree or index, and fixes a number of known
bugs and suboptimal merges).  Since we have now replaced all callers of
merge-recursive with equivalent functions from merge-ort, move the
shared functions from the former to the latter, and delete the remainder
of merge-recursive.[ch].

Signed-off-by: Elijah Newren &lt;newren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Documentation: describe incremental MIDX bitmaps</title>
<updated>2025-03-21T11:33:28Z</updated>
<author>
<name>Taylor Blau</name>
<email>me@ttaylorr.com</email>
</author>
<published>2025-03-20T17:56:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4887bdd4c7bd97e3eeccfc113fd97605b1a3d9ba'/>
<id>urn:sha1:4887bdd4c7bd97e3eeccfc113fd97605b1a3d9ba</id>
<content type='text'>
Prepare to implement support for reachability bitmaps for the new
incremental multi-pack index (MIDX) feature over the following commits.

This commit begins by first describing the relevant format and usage
details for incremental MIDX bitmaps.

Signed-off-by: Taylor Blau &lt;me@ttaylorr.com&gt;
Acked-by: Elijah Newren &lt;newren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
