pack-objects: get rid of reuse_cached_pack

This capability is practically never useful, and therefore never tested,
because it is fairly unlikely that the requested pack will be already
available.  Furthermore it is of little gain over the ability to reuse
existing pack data.

In fact the ability to change delta type on the fly when reusing delta
data is a nice thing that has almost no cost and allows greater backward
compatibility with a client's capabilities than if the client is blindly
sent a whole pack without any discrimination.

And this "feature" is simply in the way of other cleanups.
Let's get rid of it.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Nicolas Pitre 2007-04-16 12:30:15 -04:00 коммит произвёл Junio C Hamano
Родитель 9668cf59a8
Коммит f7ae6a930a
1 изменённых файлов: 14 добавлений и 72 удалений

Просмотреть файл

@ -1445,60 +1445,6 @@ static void prepare_pack(int window, int depth)
free(delta_list); free(delta_list);
} }
static int reuse_cached_pack(unsigned char *sha1)
{
static const char cache[] = "pack-cache/pack-%s.%s";
char *cached_pack, *cached_idx;
int ifd, ofd, ifd_ix = -1;
cached_pack = git_path(cache, sha1_to_hex(sha1), "pack");
ifd = open(cached_pack, O_RDONLY);
if (ifd < 0)
return 0;
if (!pack_to_stdout) {
cached_idx = git_path(cache, sha1_to_hex(sha1), "idx");
ifd_ix = open(cached_idx, O_RDONLY);
if (ifd_ix < 0) {
close(ifd);
return 0;
}
}
if (progress)
fprintf(stderr, "Reusing %u objects pack %s\n", nr_objects,
sha1_to_hex(sha1));
if (pack_to_stdout) {
if (copy_fd(ifd, 1))
exit(1);
close(ifd);
}
else {
char name[PATH_MAX];
snprintf(name, sizeof(name),
"%s-%s.%s", base_name, sha1_to_hex(sha1), "pack");
ofd = open(name, O_CREAT | O_EXCL | O_WRONLY, 0666);
if (ofd < 0)
die("unable to open %s (%s)", name, strerror(errno));
if (copy_fd(ifd, ofd))
exit(1);
close(ifd);
snprintf(name, sizeof(name),
"%s-%s.%s", base_name, sha1_to_hex(sha1), "idx");
ofd = open(name, O_CREAT | O_EXCL | O_WRONLY, 0666);
if (ofd < 0)
die("unable to open %s (%s)", name, strerror(errno));
if (copy_fd(ifd_ix, ofd))
exit(1);
close(ifd_ix);
puts(sha1_to_hex(sha1));
}
return 1;
}
static void progress_interval(int signum) static void progress_interval(int signum)
{ {
progress_update = 1; progress_update = 1;
@ -1618,6 +1564,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
SHA_CTX ctx; SHA_CTX ctx;
int depth = 10; int depth = 10;
struct object_entry **list; struct object_entry **list;
off_t last_obj_offset;
int use_internal_rev_list = 0; int use_internal_rev_list = 0;
int thin = 0; int thin = 0;
uint32_t i; uint32_t i;
@ -1779,10 +1726,6 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
if (progress && (nr_objects != nr_result)) if (progress && (nr_objects != nr_result))
fprintf(stderr, "Result has %u objects.\n", nr_result); fprintf(stderr, "Result has %u objects.\n", nr_result);
if (reuse_cached_pack(object_list_sha1))
;
else {
off_t last_obj_offset;
if (nr_result) if (nr_result)
prepare_pack(window, depth); prepare_pack(window, depth);
if (progress == 1 && pack_to_stdout) { if (progress == 1 && pack_to_stdout) {
@ -1797,7 +1740,6 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
write_index_file(last_obj_offset); write_index_file(last_obj_offset);
puts(sha1_to_hex(object_list_sha1)); puts(sha1_to_hex(object_list_sha1));
} }
}
if (progress) if (progress)
fprintf(stderr, "Total %u (delta %u), reused %u (delta %u)\n", fprintf(stderr, "Total %u (delta %u), reused %u (delta %u)\n",
written, written_delta, reused, reused_delta); written, written_delta, reused, reused_delta);