summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin-pack-objects.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index 60141196df..b13558ee7e 100644
--- a/builtin-pack-objects.c
+++ b/builtin-pack-objects.c
@@ -1635,6 +1635,11 @@ static void ll_find_deltas(struct object_entry **list, unsigned list_size,
if (sublist_size > list_size)
sublist_size = list_size;
+ /* try to split chunks on "path" boundaries */
+ while (sublist_size < list_size && list[sublist_size]->hash &&
+ list[sublist_size]->hash == list[sublist_size-1]->hash)
+ sublist_size++;
+
pthread_mutex_lock(&data_provider);
data_requester->list = list;
data_requester->list_size = sublist_size;