summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 8b0eca7)
raw | patch | inline | side by side (parent: 8b0eca7)
author | Shawn O. Pearce <spearce@spearce.org> | |
Wed, 2 May 2007 16:14:15 +0000 (12:14 -0400) | ||
committer | Shawn O. Pearce <spearce@spearce.org> | |
Wed, 2 May 2007 17:24:21 +0000 (13:24 -0400) |
Now that fast-import is using a "library function" to handle
correcting its packfile's object count and trailing SHA-1 we
should reuse the same function in index-pack, to reduce the
size of the code we must maintain.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
correcting its packfile's object count and trailing SHA-1 we
should reuse the same function in index-pack, to reduce the
size of the code we must maintain.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
index-pack.c | patch | blob | history |
diff --git a/index-pack.c b/index-pack.c
index 824004f9a2a53dcef1db3c083a4a94ce0eff9028..b9da19f55ba522d8e09c51f9413adf8d799484e9 100644 (file)
--- a/index-pack.c
+++ b/index-pack.c
free(sorted_by_pos);
}
-static void readjust_pack_header_and_sha1(unsigned char *sha1)
-{
- struct pack_header hdr;
- SHA_CTX ctx;
- int size;
-
- /* Rewrite pack header with updated object number */
- if (lseek(output_fd, 0, SEEK_SET) != 0)
- die("cannot seek back: %s", strerror(errno));
- if (read_in_full(output_fd, &hdr, sizeof(hdr)) != sizeof(hdr))
- die("cannot read pack header back: %s", strerror(errno));
- hdr.hdr_entries = htonl(nr_objects);
- if (lseek(output_fd, 0, SEEK_SET) != 0)
- die("cannot seek back: %s", strerror(errno));
- write_or_die(output_fd, &hdr, sizeof(hdr));
- if (lseek(output_fd, 0, SEEK_SET) != 0)
- die("cannot seek back: %s", strerror(errno));
-
- /* Recompute and store the new pack's SHA1 */
- SHA1_Init(&ctx);
- do {
- unsigned char *buf[4096];
- size = xread(output_fd, buf, sizeof(buf));
- if (size < 0)
- die("cannot read pack data back: %s", strerror(errno));
- SHA1_Update(&ctx, buf, size);
- } while (size > 0);
- SHA1_Final(sha1, &ctx);
- write_or_die(output_fd, sha1, 20);
-}
-
static uint32_t index_default_version = 1;
static uint32_t index_off32_limit = 0x7fffffff;
fprintf(stderr, "%d objects were added to complete this thin pack.\n",
nr_objects - nr_objects_initial);
}
- readjust_pack_header_and_sha1(sha1);
+ fixup_pack_header_footer(output_fd, sha1,
+ curr_pack, nr_objects);
}
if (nr_deltas != nr_resolved_deltas)
die("pack has %d unresolved deltas",