contrib/git-svn: allow --authors-file to be specified
[git.git] / commit.c
index 512b5d7..06d5439 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -572,7 +572,7 @@ int count_parents(struct commit * commit)
 /*
  * Performs an in-place topological sort on the list supplied.
  */
-void sort_in_topological_order(struct commit_list ** list)
+void sort_in_topological_order(struct commit_list ** list, int lifo)
 {
        struct commit_list * next = *list;
        struct commit_list * work = NULL, **insert;
@@ -631,7 +631,10 @@ void sort_in_topological_order(struct commit_list ** list)
                }
                next=next->next;
        }
+
        /* process the list in topological order */
+       if (!lifo)
+               sort_by_date(&work);
        while (work) {
                struct commit * work_item = pop_commit(&work);
                struct sort_node * work_node = (struct sort_node *)work_item->object.util;
@@ -648,8 +651,12 @@ void sort_in_topological_order(struct commit_list ** list)
                                  * guaranteeing topological order.
                                  */
                                pn->indegree--;
-                               if (!pn->indegree) 
-                                       commit_list_insert(parent, &work);
+                               if (!pn->indegree) {
+                                       if (!lifo)
+                                               insert_by_date(parent, &work);
+                                       else
+                                               commit_list_insert(parent, &work);
+                               }
                        }
                        parents=parents->next;
                }