X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=builtin%2Ffast-export.c;h=c8fd46b872780b27b09ad70316fa164d855f3220;hb=385cc9d8c44eb5be9d57e630129752a72c0a08c8;hp=a9bbf8653d1a8fa704a38c06102ec3ace4a59a28;hpb=c208e05bd9880028c980fafbc5dda3d17a603ac1;p=git.git diff --git a/builtin/fast-export.c b/builtin/fast-export.c index a9bbf8653..c8fd46b87 100644 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c @@ -167,7 +167,15 @@ static int depth_first(const void *a_, const void *b_) cmp = memcmp(name_a, name_b, len); if (cmp) return cmp; - return (len_b - len_a); + cmp = len_b - len_a; + if (cmp) + return cmp; + /* + * Move 'R'ename entries last so that all references of the file + * appear in the output before it is renamed (e.g., when a file + * was copied and renamed in the same commit). + */ + return (a->status == 'R') - (b->status == 'R'); } static void show_filemodify(struct diff_queue_struct *q,