fast-export: Fix output order of D/F changes
authorElijah Newren <newren@gmail.com>
Fri, 9 Jul 2010 13:10:55 +0000 (07:10 -0600)
committerJunio C Hamano <gitster@pobox.com>
Fri, 9 Jul 2010 23:16:29 +0000 (16:16 -0700)
commit060df624228187c77ca53a437ae0e9896076f045
treed95230936ae0662e6987e03e591ee43fb83d0caf
parent5a2580d62f9aaa30f0acd10df9dbe7a581dd77d9
fast-export: Fix output order of D/F changes

The fast-import stream format requires incremental changes which take place
immediately, meaning that for D->F conversions all files below the relevant
directory must be deleted before the resulting file of the same name is
created.  Reversing the order can result in fast-import silently deleting
the file right after creating it, resulting in the file missing from the
resulting repository.

We correct this by first sorting the diff_queue_struct in depth-first
order.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fast-export.c
t/t9350-fast-export.sh