contrib/git-svn: optimize sequential commits to svn
[gitweb.git] / commit.h
index 30702ca937562c9a7cd830050c97c42cf232b95a..70a7c75e6590ae7f8eef50f91a495fc6138fda4a 100644 (file)
--- a/commit.h
+++ b/commit.h
@@ -43,11 +43,12 @@ enum cmit_fmt {
        CMIT_FMT_DEFAULT = CMIT_FMT_MEDIUM,
        CMIT_FMT_SHORT,
        CMIT_FMT_FULL,
+       CMIT_FMT_FULLER,
        CMIT_FMT_ONELINE,
 };
 
 extern enum cmit_fmt get_commit_format(const char *arg);
-extern unsigned long pretty_print_commit(enum cmit_fmt fmt, const char *msg, unsigned long len, char *buf, unsigned long space);
+extern unsigned long pretty_print_commit(enum cmit_fmt fmt, const struct commit *, unsigned long len, char *buf, unsigned long space, int abbrev);
 
 /** Removes the first commit from a list sorted by date, and adds all
  * of its parents.
@@ -57,6 +58,8 @@ struct commit *pop_most_recent_commit(struct commit_list **list,
 
 struct commit *pop_commit(struct commit_list **stack);
 
+void clear_commit_marks(struct commit *commit, unsigned int mark);
+
 int count_parents(struct commit * commit);
 
 /*
@@ -69,6 +72,8 @@ int count_parents(struct commit * commit);
  * Post-conditions: 
  *   invariant of resulting list is:
  *      a reachable from b => ord(b) < ord(a)
+ *   in addition, when lifo == 0, commits on parallel tracks are
+ *   sorted in the dates order.
  */
-void sort_in_topological_order(struct commit_list ** list);
+void sort_in_topological_order(struct commit_list ** list, int lifo);
 #endif /* COMMIT_H */