]> git.ipfire.org Git - thirdparty/git.git/commit
pack-objects: allow `--filter` without `--stdout`
authorChristian Couder <christian.couder@gmail.com>
Mon, 2 Oct 2023 16:54:56 +0000 (18:54 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 2 Oct 2023 21:54:29 +0000 (14:54 -0700)
commit6cfcabfb9f60369f6fb4d24465a7c98b1d90b34b
treefebef9eddbc4d5b407b3a5e66c20917ba7962eba
parentbcb6cae2966cc407ca1afc77413b3ef11103c175
pack-objects: allow `--filter` without `--stdout`

9535ce7337 (pack-objects: add list-objects filtering, 2017-11-21)
taught `git pack-objects` to use `--filter`, but required the use of
`--stdout` since a partial clone mechanism was not yet in place to
handle missing objects. Since then, changes like 9e27beaa23
(promisor-remote: implement promisor_remote_get_direct(), 2019-06-25)
and others added support to dynamically fetch objects that were missing.

Even without a promisor remote, filtering out objects can also be useful
if we can put the filtered out objects in a separate pack, and in this
case it also makes sense for pack-objects to write the packfile directly
to an actual file rather than on stdout.

Remove the `--stdout` requirement when using `--filter`, so that in a
follow-up commit, repack can pass `--filter` to pack-objects to omit
certain objects from the resulting packfile.

Signed-off-by: John Cai <johncai86@gmail.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-pack-objects.txt
builtin/pack-objects.c
t/t5317-pack-objects-filter-objects.sh