Re: What's cooking in git.git (Aug 2020, #07; Thu, 27)

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

 



On Fri, Aug 28, 2020 at 02:26:19AM -0400, Jeff King wrote:

> On Thu, Aug 27, 2020 at 08:39:40PM -0400, Taylor Blau wrote:
> 
> > > >> * tb/repack-clearing-midx (2020-08-26) 1 commit
> > > >>   (merged to 'next' on 2020-08-27 at a465875cbb)
> > > >>  + builtin/repack.c: invalidate MIDX only when necessary
> > [...]
> > Thanks indeed. I started looking into this tonight thinking that it'd be
> > an easy fix, but I think there is a deeper bug that is worth
> > investigating further.
> 
> I imagine this is part of it:
> 
> diff --git a/builtin/repack.c b/builtin/repack.c
> index f10f52779c..2cc05f968a 100644
> --- a/builtin/repack.c
> +++ b/builtin/repack.c
> @@ -134,7 +134,7 @@ static void remove_redundant_pack(const char *dir_name, const char *base_name)
>  {
>  	struct strbuf buf = STRBUF_INIT;
>  	struct multi_pack_index *m = get_multi_pack_index(the_repository);
> -	strbuf_addf(&buf, "%s.pack", base_name);
> +	strbuf_addf(&buf, "%s.idx", base_name);
>  	if (m && midx_contains_pack(m, buf.buf))
>  		clear_midx_file(the_repository);
>  	strbuf_insertf(&buf, 0, "%s/", dir_name);
> 
> but maybe that is just the "easy" part you meant. Several tests still
> seem to fail, which I guess is the "deeper" part. :)
> 
> If I'm understanding midx_contains_pack() correctly, then the code
> looking for ".pack" could never have matched, and we would never have
> deleted a midx here. Which makes me wonder why the "repack removes
> multi-pack-index when deleting packs" test ever succeeded.

Sorry, this is all nonsense.

I forgot about the hackery added in 013fd7ada3 (midx: check both pack
and index names for containment, 2019-04-05). And anyway, the patch
above is totally bogus because we need the ".pack" form in the buffer
when we call unlink_pack_path().

So there's definitely something more odd going on in that failing test.

-Peff



[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