diff options
author | Nicolas Pitre <nico@cam.org> | 2008-08-22 15:45:53 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-22 22:00:22 -0700 |
commit | 4b480c6716a7d8e20e7e510827ea81e7939f335a (patch) | |
tree | 24c1de905aecbdebfd1c71485de456d0d6660c31 /pack-revindex.c | |
parent | a81892dd8c37b6f13793739721b520fee3ce4c2c (diff) | |
download | git-4b480c6716a7d8e20e7e510827ea81e7939f335a.tar.gz git-4b480c6716a7d8e20e7e510827ea81e7939f335a.tar.xz |
discard revindex data when pack list changes
This is needed to fix verify-pack -v with multiple pack arguments.
Also, in theory, revindex data (if any) must be discarded whenever
reprepare_packed_git() is called. In practice this is hard to trigger
though.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pack-revindex.c')
-rw-r--r-- | pack-revindex.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/pack-revindex.c b/pack-revindex.c index cd300bdff..6096b6224 100644 --- a/pack-revindex.c +++ b/pack-revindex.c @@ -142,3 +142,15 @@ struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs) } while (lo < hi); die("internal error: pack revindex corrupt"); } + +void discard_revindex(void) +{ + if (pack_revindex_hashsz) { + int i; + for (i = 0; i < pack_revindex_hashsz; i++) + if (pack_revindex[i].revindex) + free(pack_revindex[i].revindex); + free(pack_revindex); + pack_revindex_hashsz = 0; + } +} |