Merge branch 'np/verify-pack'
* np/verify-pack: discard revindex data when pack list changes
This commit is contained in:
commit
5a1e8707a6
@ -1,7 +1,7 @@
|
|||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "pack.h"
|
#include "pack.h"
|
||||||
|
#include "pack-revindex.h"
|
||||||
|
|
||||||
#define MAX_CHAIN 50
|
#define MAX_CHAIN 50
|
||||||
|
|
||||||
@ -129,6 +129,7 @@ int cmd_verify_pack(int argc, const char **argv, const char *prefix)
|
|||||||
else {
|
else {
|
||||||
if (verify_one_pack(argv[1], verbose))
|
if (verify_one_pack(argv[1], verbose))
|
||||||
err = 1;
|
err = 1;
|
||||||
|
discard_revindex();
|
||||||
nothing_done = 0;
|
nothing_done = 0;
|
||||||
}
|
}
|
||||||
argc--; argv++;
|
argc--; argv++;
|
||||||
|
@ -142,3 +142,15 @@ struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs)
|
|||||||
} while (lo < hi);
|
} while (lo < hi);
|
||||||
die("internal error: pack revindex corrupt");
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -7,5 +7,6 @@ struct revindex_entry {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs);
|
struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs);
|
||||||
|
void discard_revindex(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -990,6 +990,7 @@ void prepare_packed_git(void)
|
|||||||
|
|
||||||
void reprepare_packed_git(void)
|
void reprepare_packed_git(void)
|
||||||
{
|
{
|
||||||
|
discard_revindex();
|
||||||
prepare_packed_git_run_once = 0;
|
prepare_packed_git_run_once = 0;
|
||||||
prepare_packed_git();
|
prepare_packed_git();
|
||||||
}
|
}
|
||||||
|
@ -186,6 +186,12 @@ test_expect_success \
|
|||||||
test-2-${packname_2}.idx \
|
test-2-${packname_2}.idx \
|
||||||
test-3-${packname_3}.idx'
|
test-3-${packname_3}.idx'
|
||||||
|
|
||||||
|
test_expect_success \
|
||||||
|
'verify pack -v' \
|
||||||
|
'git verify-pack -v test-1-${packname_1}.idx \
|
||||||
|
test-2-${packname_2}.idx \
|
||||||
|
test-3-${packname_3}.idx'
|
||||||
|
|
||||||
test_expect_success \
|
test_expect_success \
|
||||||
'verify-pack catches mismatched .idx and .pack files' \
|
'verify-pack catches mismatched .idx and .pack files' \
|
||||||
'cat test-1-${packname_1}.idx >test-3.idx &&
|
'cat test-1-${packname_1}.idx >test-3.idx &&
|
||||||
|
Loading…
Reference in New Issue
Block a user