<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Documentation/technical, branch v2.51.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.51.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.51.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2025-06-25T21:07:35Z</updated>
<entry>
<title>Merge branch 'jc/you-still-use-whatchanged'</title>
<updated>2025-06-25T21:07:35Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-06-25T21:07:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a5cc6a2bc526f5ffb427f8d8bb987af6e591c4e4'/>
<id>urn:sha1:a5cc6a2bc526f5ffb427f8d8bb987af6e591c4e4</id>
<content type='text'>
"git whatchanged" that is longer to type than "git log --raw"
which is its modern rough equivalent has outlived its usefulness
more than 10 years ago.  Plan to deprecate and remove it.

* jc/you-still-use-whatchanged:
  whatschanged: list it in BreakingChanges document
  whatchanged: remove when built with WITH_BREAKING_CHANGES
  whatchanged: require --i-still-use-this
  tests: prepare for a world without whatchanged
  doc: prepare for a world without whatchanged
  you-still-use-that??: help deprecating commands for removal
</content>
</entry>
<entry>
<title>Merge branch 'jw/doc-txt-to-adoc-refs'</title>
<updated>2025-06-18T20:53:35Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-06-18T20:53:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=19612d0e4628dad9719198078e4c5d9008454d05'/>
<id>urn:sha1:19612d0e4628dad9719198078e4c5d9008454d05</id>
<content type='text'>
Some leftover references to documentation source files that no
longer exist, due to recent ".txt" -&gt; ".adoc" renaming, have been
corrected.

* jw/doc-txt-to-adoc-refs:
  doc: update references to renamed AsciiDoc files
</content>
</entry>
<entry>
<title>Merge branch 'ds/path-walk-2'</title>
<updated>2025-06-17T17:44:38Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-06-17T17:44:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=88134a8417b1deb6b236e660c6e0547355b180a3'/>
<id>urn:sha1:88134a8417b1deb6b236e660c6e0547355b180a3</id>
<content type='text'>
"git pack-objects" learns to find delta bases from blobs at the
same path, using the --path-walk API.

* ds/path-walk-2:
  pack-objects: allow --shallow and --path-walk
  path-walk: add new 'edge_aggressive' option
  pack-objects: thread the path-based compression
  pack-objects: refactor path-walk delta phase
  scalar: enable path-walk during push via config
  pack-objects: enable --path-walk via config
  repack: add --path-walk option
  t5538: add tests to confirm deltas in shallow pushes
  pack-objects: introduce GIT_TEST_PACK_PATH_WALK
  p5313: add performance tests for --path-walk
  pack-objects: update usage to match docs
  pack-objects: add --path-walk option
  pack-objects: extract should_attempt_deltas()
</content>
</entry>
<entry>
<title>doc: update references to renamed AsciiDoc files</title>
<updated>2025-06-06T22:05:47Z</updated>
<author>
<name>Jouke Witteveen</name>
<email>j.witteveen@gmail.com</email>
</author>
<published>2025-05-21T19:05:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3717a5775a7ba9e5f5b2794171ab205c0a177ef8'/>
<id>urn:sha1:3717a5775a7ba9e5f5b2794171ab205c0a177ef8</id>
<content type='text'>
The .txt extensions were changed to .adoc in 1f010d6 (doc: use .adoc
extension for AsciiDoc files, 2025-01-20). References to the renamed
files were not updated yet.

Signed-off-by: Jouke Witteveen &lt;j.witteveen@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<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>path-walk: add new 'edge_aggressive' option</title>
<updated>2025-05-16T19:15:40Z</updated>
<author>
<name>Derrick Stolee</name>
<email>stolee@gmail.com</email>
</author>
<published>2025-05-16T18:12:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4705889c3dfbb38f14c3569b489b4b2a00b4186a'/>
<id>urn:sha1:4705889c3dfbb38f14c3569b489b4b2a00b4186a</id>
<content type='text'>
In preparation for allowing both the --shallow and --path-walk options
in the 'git pack-objects' builtin, create a new 'edge_aggressive' option
in the path-walk API. This option will help walk the boundary more
thoroughly and help avoid sending extra objects during fetches and
pushes.

The only use of the 'edge_hint_aggressive' option in the revision API is
within mark_edges_uninteresting(), which is usually called before
between prepare_revision_walk() and before visiting commits with
get_revision(). In prepare_revision_walk(), the UNINTERESTING commits
are walked until a boundary is found.

Signed-off-by: Derrick Stolee &lt;stolee@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>pack-objects: add --path-walk option</title>
<updated>2025-05-16T19:15:38Z</updated>
<author>
<name>Derrick Stolee</name>
<email>stolee@gmail.com</email>
</author>
<published>2025-05-16T18:11:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=70664d2865ccd21da4a182fed6d11da5a615cd2b'/>
<id>urn:sha1:70664d2865ccd21da4a182fed6d11da5a615cd2b</id>
<content type='text'>
In order to more easily compute delta bases among objects that appear at
the exact same path, add a --path-walk option to 'git pack-objects'.

This option will use the path-walk API instead of the object walk given
by the revision machinery. Since objects will be provided in batches
representing a common path, those objects can be tested for delta bases
immediately instead of waiting for a sort of the full object list by
name-hash. This has multiple benefits, including avoiding collisions by
name-hash.

The objects marked as UNINTERESTING are included in these batches, so we
are guaranteeing some locality to find good delta bases.

After the individual passes are done on a per-path basis, the default
name-hash is used to find other opportunistic delta bases that did not
match exactly by the full path name.

The current implementation performs delta calculations while walking
objects, which is not ideal for a few reasons. First, this will cause
the "Enumerating objects" phase to be much longer than usual. Second, it
does not take advantage of threading during the path-scoped delta
calculations. Even with this lack of threading, the path-walk option is
sometimes faster than the usual approach. Future changes will refactor
this code to allow for threading, but that complexity is deferred until
later to keep this patch as simple as possible.

This new walk is incompatible with some features and is ignored by
others:

 * Object filters are not currently integrated with the path-walk API,
   such as sparse-checkout or tree depth. A blobless packfile could be
   integrated easily, but that is deferred for later.

 * Server-focused features such as delta islands, shallow packs, and
   using a bitmap index are incompatible with the path-walk API.

 * The path walk API is only compatible with the --revs option, not
   taking object lists or pack lists over stdin. These alternative ways
   to specify the objects currently ignores the --path-walk option
   without even a warning.

Future changes will create performance tests that demonstrate the power
of this approach.

Signed-off-by: Derrick Stolee &lt;stolee@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>whatchanged: remove when built with WITH_BREAKING_CHANGES</title>
<updated>2025-05-12T22:30:12Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-05-12T19:03:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=07572f220a83770f5b0b9717b29027e016fc99e4'/>
<id>urn:sha1:07572f220a83770f5b0b9717b29027e016fc99e4</id>
<content type='text'>
As we made "git whatchanged" require "--i-still-use-this" and asked
the users to report if they still want to use it, the logical next
step is to allow us build Git without "whatchanged" to prepare for
its eventual removal.

If we were to follow the pattern established in 8ccc75c2 (remote:
announce removal of "branches/" and "remotes/", 2025-01-22), we can
do this together with the documentation update to officially list
that the command will be removed in the BreakingChanges document,
but let's just keep the changes separate just in case we want to
proceed a bit slower.

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