Re: [PATCH 1/9] pack-objects: allow `--filter` without `--stdout`

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 21, 2023 at 12:49 PM Taylor Blau <me@xxxxxxxxxxxx> wrote:
>
> On Wed, Jun 14, 2023 at 09:25:33PM +0200, Christian Couder wrote:
> > 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.
>
> Makes sense.
>
> Is there any situation in which using --stdout with --filter would be a
> potential foot-gun? I am not as familiar with the partial clone
> mechanism as others CC'd, so I have no idea one way or the other.

This patch allows `--filter` without `--stdout`, so `--stdout` with
`--filter` was already allowed before this patch and is still allowed
after it.

Besides, using `--stdout` or not using it is just a convenience. It
doesn't change much what users can do with `git pack-objects`.

> If it is unsafe in certain situations (or, at the very least, could
> produce surprising behavior), it may be worthwhile to only allow
> `--filter=<filter> --stdout` with some kind of
> `--filter-to-stdout-is-ok` flag to indicate that the caller knows what
> they are doing.

`git pack-objects` with `--filter` can be unsafe in some cases if
users do stupid things with packfiles afterwards, but allowing it to
run without --stdout doesn't significantly change that. In any case by
itself it doesn't delete any data. It just creates a pack containing
fewer objects.

Anyway I added a small test that checks that --filter can be used
without --stdout.




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux