[PATCH 10/13] update delta handling in write_object() for --pack-limit
---
builtin-pack-objects.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
--
Dana L. How danahow@gmail.com +1 650 804 5991 cell
From 7ee505accac1675269d1fcfc7a6e3bcf70792a2f Mon Sep 17 00:00:00 2001
From: Dana How <how@deathvalley.cswitch.com>
Date: Thu, 5 Apr 2007 14:11:21 -0700
Subject: [PATCH 10/13] update delta handling in write_object() for --pack-limit
---
builtin-pack-objects.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index ccc2d15..a243eed 100644
--- a/builtin-pack-objects.c
+++ b/builtin-pack-objects.c
@@ -419,13 +419,17 @@ static off_t write_object(struct sha1file *f,
}
if (!to_reuse) {
+ int usable_delta = !entry->delta ? 0 :
+ !offset_limit ? 1 :
+ entry->delta->no_write ? 0 :
+ entry->delta->offset ? 1 : 0;
buf = read_sha1_file(entry->sha1, &type, &size);
if (!buf)
die("unable to read %s", sha1_to_hex(entry->sha1));
if (size != entry->size)
die("object %s size inconsistency (%lu vs %lu)",
sha1_to_hex(entry->sha1), size, entry->size);
- if (entry->delta) {
+ if (usable_delta) {
buf = delta_against(buf, size, entry);
size = entry->delta_size;
obj_type = (allow_ofs_delta && entry->delta->offset) ?
--
1.5.1.rc2.18.g9c88-dirty