Re: [PATCH v4 05/25] midx: clear auxiliary .rev after replacing the MIDX
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 24, 2021, 20:27 UTC
- Message-ID
- <xmqqa6l6oafd.fsf@gitster.g>
- In-Reply-To
- <771741844be3570395abfda813ed5ef2fa78332e.1629821743.git.me@ttaylorr.com>
Taylor Blau <me@ttaylorr.com> writes:
Show 27 quoted lines
> When writing a new multi-pack index, write_midx_internal() attempts to > clean up any auxiliary files (currently just the MIDX's `.rev` file, but > soon to include a `.bitmap`, too) corresponding to the MIDX it's > replacing. > > This step should happen after the new MIDX is written into place, since > doing so beforehand means that the old MIDX could be read without its > corresponding .rev file. > > Signed-off-by: Taylor Blau <me@ttaylorr.com> > --- > midx.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/midx.c b/midx.c > index 321c6fdd2f..73b199ca49 100644 > --- a/midx.c > +++ b/midx.c > @@ -1086,10 +1086,11 @@ static int write_midx_internal(const char *object_dir, struct multi_pack_index * > > if (flags & MIDX_WRITE_REV_INDEX) > write_midx_reverse_index(midx_name, midx_hash, &ctx); > - clear_midx_files_ext(the_repository, ".rev", midx_hash); > > commit_lock_file(&lk); > > + clear_midx_files_ext(the_repository, ".rev", midx_hash);
This needs to take object_dir into account, no?
There are a few more calls to clear_midx_files_ext() added in 15/25 and they use the_repository, too.
> cleanup:
> for (i = 0; i < ctx.nr; i++) {
> if (ctx.info[i].p) {