Merge branch 'maint-1.6.1' into maint-1.6.2

* maint-1.6.1:
  verify-pack -v: do not report "chain length 0"
  t5510: harden the way verify-pack is used
This commit is contained in:
Junio C Hamano 2009-08-07 20:44:09 -07:00
commit e72263a1f8
2 changed files with 27 additions and 11 deletions

View file

@ -7,10 +7,13 @@
static void show_pack_info(struct packed_git *p) static void show_pack_info(struct packed_git *p)
{ {
uint32_t nr_objects, i, chain_histogram[MAX_CHAIN+1]; uint32_t nr_objects, i;
int cnt;
unsigned long chain_histogram[MAX_CHAIN+1], baseobjects;
nr_objects = p->num_objects; nr_objects = p->num_objects;
memset(chain_histogram, 0, sizeof(chain_histogram)); memset(chain_histogram, 0, sizeof(chain_histogram));
baseobjects = 0;
for (i = 0; i < nr_objects; i++) { for (i = 0; i < nr_objects; i++) {
const unsigned char *sha1; const unsigned char *sha1;
@ -29,9 +32,11 @@ static void show_pack_info(struct packed_git *p)
&delta_chain_length, &delta_chain_length,
base_sha1); base_sha1);
printf("%s ", sha1_to_hex(sha1)); printf("%s ", sha1_to_hex(sha1));
if (!delta_chain_length) if (!delta_chain_length) {
printf("%-6s %lu %lu %"PRIuMAX"\n", printf("%-6s %lu %lu %"PRIuMAX"\n",
type, size, store_size, (uintmax_t)offset); type, size, store_size, (uintmax_t)offset);
baseobjects++;
}
else { else {
printf("%-6s %lu %lu %"PRIuMAX" %u %s\n", printf("%-6s %lu %lu %"PRIuMAX" %u %s\n",
type, size, store_size, (uintmax_t)offset, type, size, store_size, (uintmax_t)offset,
@ -43,15 +48,21 @@ static void show_pack_info(struct packed_git *p)
} }
} }
for (i = 0; i <= MAX_CHAIN; i++) { if (baseobjects)
if (!chain_histogram[i]) printf("non delta: %lu object%s\n",
baseobjects, baseobjects > 1 ? "s" : "");
for (cnt = 1; cnt <= MAX_CHAIN; cnt++) {
if (!chain_histogram[cnt])
continue; continue;
printf("chain length = %"PRIu32": %"PRIu32" object%s\n", i, printf("chain length = %d: %lu object%s\n", cnt,
chain_histogram[i], chain_histogram[i] > 1 ? "s" : ""); chain_histogram[cnt],
chain_histogram[cnt] > 1 ? "s" : "");
} }
if (chain_histogram[0]) if (chain_histogram[0])
printf("chain length > %d: %"PRIu32" object%s\n", MAX_CHAIN, printf("chain length > %d: %lu object%s\n", MAX_CHAIN,
chain_histogram[0], chain_histogram[0] > 1 ? "s" : ""); chain_histogram[0],
chain_histogram[0] > 1 ? "s" : "");
} }
static int verify_one_pack(const char *path, int verbose) static int verify_one_pack(const char *path, int verbose)

View file

@ -9,6 +9,11 @@ test_description='Per branch config variables affects "git fetch".
D=`pwd` D=`pwd`
test_bundle_object_count () {
git verify-pack -v "$1" >verify.out &&
test "$2" = $(grep '^[0-9a-f]\{40\} ' verify.out | wc -l)
}
test_expect_success setup ' test_expect_success setup '
echo >file original && echo >file original &&
git add file && git add file &&
@ -146,6 +151,7 @@ test_expect_success 'unbundle 1' '
test_must_fail git fetch "$D/bundle1" master:master test_must_fail git fetch "$D/bundle1" master:master
' '
test_expect_success 'bundle 1 has only 3 files ' ' test_expect_success 'bundle 1 has only 3 files ' '
cd "$D" && cd "$D" &&
( (
@ -156,8 +162,7 @@ test_expect_success 'bundle 1 has only 3 files ' '
cat cat
) <bundle1 >bundle.pack && ) <bundle1 >bundle.pack &&
git index-pack bundle.pack && git index-pack bundle.pack &&
verify=$(git verify-pack -v bundle.pack) && test_bundle_object_count bundle.pack 3
test 4 = $(echo "$verify" | wc -l)
' '
test_expect_success 'unbundle 2' ' test_expect_success 'unbundle 2' '
@ -180,7 +185,7 @@ test_expect_success 'bundle does not prerequisite objects' '
cat cat
) <bundle3 >bundle.pack && ) <bundle3 >bundle.pack &&
git index-pack bundle.pack && git index-pack bundle.pack &&
test 4 = $(git verify-pack -v bundle.pack | wc -l) test_bundle_object_count bundle.pack 3
' '
test_expect_success 'bundle should be able to create a full history' ' test_expect_success 'bundle should be able to create a full history' '