mbox series

[0/2] revision: exclude all packed objects with `--unpacked`

Message ID cover.1699311386.git.me@ttaylorr.com (mailing list archive)
Headers show
Series revision: exclude all packed objects with `--unpacked` | expand

Message

Taylor Blau Nov. 6, 2023, 10:56 p.m. UTC
While working on my longer series to enable verbatim pack reuse across
multiple packs[^1], I noticed a couple of oddities with the `--unpacked`
rev-walk flag.

While it does exclude packed commits, it does not exclude (all) packed
trees/blobs/annotated tags. This problem exists in the pack-bitmap
machinery, too, which will over-count queries like:

    $ git rev-list --use-bitmap-index --all --unpacked --objects

, etc.

The fix is relatively straightforward, split across two patches that
Peff and I worked on together earlier today.

This is technically a backwards-incompatible change, but the existing
behavior is broken and does not match the documented behavior, so I
think in this case we are OK to change --unpacked to faithfully
implement its documentation.

[^1]: Which, I'm very excited to say, is working :-).

Taylor Blau (2):
  list-objects: drop --unpacked non-commit objects from results
  pack-bitmap: drop --unpacked non-commit objects from results

 list-objects.c                     |  3 +++
 pack-bitmap.c                      | 27 +++++++++++++++++++++++++++
 t/t6000-rev-list-misc.sh           | 13 +++++++++++++
 t/t6113-rev-list-bitmap-filters.sh | 13 +++++++++++++
 t/t6115-rev-list-du.sh             |  7 +++++++
 5 files changed, 63 insertions(+)


base-commit: bc5204569f7db44d22477485afd52ea410d83743

Comments

Junio C Hamano Nov. 7, 2023, 1:42 a.m. UTC | #1
Taylor Blau <me@ttaylorr.com> writes:

> While working on my longer series to enable verbatim pack reuse across
> multiple packs[^1], I noticed a couple of oddities with the `--unpacked`
> rev-walk flag.
>
> While it does exclude packed commits, it does not exclude (all) packed
> trees/blobs/annotated tags. This problem exists in the pack-bitmap
> machinery, too, which will over-count queries like:
>
>     $ git rev-list --use-bitmap-index --all --unpacked --objects
>
> , etc.
>
> The fix is relatively straightforward, split across two patches that
> Peff and I worked on together earlier today.
>
> This is technically a backwards-incompatible change, but the existing
> behavior is broken and does not match the documented behavior, so I
> think in this case we are OK to change --unpacked to faithfully
> implement its documentation.

Yeah, it does sound like a straight bugfix to me.

>
> [^1]: Which, I'm very excited to say, is working :-).
>
> Taylor Blau (2):
>   list-objects: drop --unpacked non-commit objects from results
>   pack-bitmap: drop --unpacked non-commit objects from results
>
>  list-objects.c                     |  3 +++
>  pack-bitmap.c                      | 27 +++++++++++++++++++++++++++
>  t/t6000-rev-list-misc.sh           | 13 +++++++++++++
>  t/t6113-rev-list-bitmap-filters.sh | 13 +++++++++++++
>  t/t6115-rev-list-du.sh             |  7 +++++++
>  5 files changed, 63 insertions(+)
>
>
> base-commit: bc5204569f7db44d22477485afd52ea410d83743
Jeff King Nov. 7, 2023, 4:02 a.m. UTC | #2
On Mon, Nov 06, 2023 at 05:56:27PM -0500, Taylor Blau wrote:

> While working on my longer series to enable verbatim pack reuse across
> multiple packs[^1], I noticed a couple of oddities with the `--unpacked`
> rev-walk flag.
> 
> While it does exclude packed commits, it does not exclude (all) packed
> trees/blobs/annotated tags. This problem exists in the pack-bitmap
> machinery, too, which will over-count queries like:
> 
>     $ git rev-list --use-bitmap-index --all --unpacked --objects
> 
> , etc.
> 
> The fix is relatively straightforward, split across two patches that
> Peff and I worked on together earlier today.

I'm not sure my review is worth anything, but this looks good to me. ;)
I do think it might be worth tightening up the docs as Junio suggested,
but I would be fine to see that as a patch on top.

-Peff
Patrick Steinhardt Nov. 7, 2023, 9:43 a.m. UTC | #3
On Mon, Nov 06, 2023 at 11:02:35PM -0500, Jeff King wrote:
> On Mon, Nov 06, 2023 at 05:56:27PM -0500, Taylor Blau wrote:
> 
> > While working on my longer series to enable verbatim pack reuse across
> > multiple packs[^1], I noticed a couple of oddities with the `--unpacked`
> > rev-walk flag.
> > 
> > While it does exclude packed commits, it does not exclude (all) packed
> > trees/blobs/annotated tags. This problem exists in the pack-bitmap
> > machinery, too, which will over-count queries like:
> > 
> >     $ git rev-list --use-bitmap-index --all --unpacked --objects
> > 
> > , etc.
> > 
> > The fix is relatively straightforward, split across two patches that
> > Peff and I worked on together earlier today.
> 
> I'm not sure my review is worth anything, but this looks good to me. ;)
> I do think it might be worth tightening up the docs as Junio suggested,
> but I would be fine to see that as a patch on top.
> 
> -Peff

I also read through the patches and agree, this looks good to me.
Thanks!

Patrick