Code

pack-objects: equal objects in size should delta against newer objects
authorNicolas Pitre <nico@cam.org>
Mon, 16 Apr 2007 16:28:52 +0000 (12:28 -0400)
committerJunio C Hamano <junkio@cox.net>
Tue, 17 Apr 2007 00:43:30 +0000 (17:43 -0700)
Before finding best delta combinations, we sort objects by name hash,
then by size, then by their position in memory.  Then we walk the list
backwards to test delta candidates.

We hope that a bigger size usually means a newer objects.  But a bigger
address in memory does not mean a newer object.  So the last comparison
must be reversed.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-pack-objects.c

index 62a011e2e92a57ebbdb5a99e796013bedfa6cd8d..869ca1ab269859c6e23676f329e8c59e4f6aeb20 100644 (file)
@@ -1276,7 +1276,7 @@ static int type_size_sort(const struct object_entry *a, const struct object_entr
                return -1;
        if (a->size > b->size)
                return 1;
-       return a < b ? -1 : (a > b);
+       return a > b ? -1 : (a < b);  /* newest last */
 }
 
 struct unpacked {