Code

fast-export: ensure we traverse commits in topological order
authorElijah Newren <newren@gmail.com>
Wed, 11 Feb 2009 06:03:53 +0000 (23:03 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 12 Feb 2009 02:30:17 +0000 (18:30 -0800)
fast-export will only list as parents those commits which have already
been traversed (making it appear as if merges have been squashed if not
all parents have been traversed).  To avoid this silent squashing of
merge commits, we request commits in topological order.

Signed-off-by: Elijah Newren <newren@gmail.com>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-fast-export.c

index 838633808c3eb4891919aa397716f04fcd4cfe24..cdb7df5efeec9bbe6ec4ef4ab380403ea662bb12 100644 (file)
@@ -511,6 +511,7 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
 
        get_tags_and_duplicates(&revs.pending, &extra_refs);
 
 
        get_tags_and_duplicates(&revs.pending, &extra_refs);
 
+       revs.topo_order = 1;
        if (prepare_revision_walk(&revs))
                die("revision walk setup failed");
        revs.diffopt.format_callback = show_filemodify;
        if (prepare_revision_walk(&revs))
                die("revision walk setup failed");
        revs.diffopt.format_callback = show_filemodify;