Merge branch 'fc/makefile'
[gitweb.git] / revision.h
index 01bd2b7c07719c9628bba13e34b581dc1fdbc0af..a313a1340536321080c44d502a2bb6bc105940d5 100644 (file)
@@ -35,6 +35,7 @@ struct rev_cmdline_info {
                        REV_CMD_PARENTS_ONLY,
                        REV_CMD_LEFT,
                        REV_CMD_RIGHT,
+                       REV_CMD_MERGE_BASE,
                        REV_CMD_REV
                } whence;
                unsigned flags;
@@ -96,7 +97,8 @@ struct rev_info {
                        cherry_mark:1,
                        bisect:1,
                        ancestry_path:1,
-                       first_parent_only:1;
+                       first_parent_only:1,
+                       line_level_traverse:1;
 
        /* Diff flags */
        unsigned int    diff:1,
@@ -175,6 +177,9 @@ struct rev_info {
        int count_left;
        int count_right;
        int count_same;
+
+       /* line level range that we are chasing */
+       struct decoration line_log_data;
 };
 
 #define REV_TREE_SAME          0
@@ -241,4 +246,14 @@ enum commit_action {
 extern enum commit_action get_commit_action(struct rev_info *revs, struct commit *commit);
 extern enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit);
 
+enum rewrite_result {
+       rewrite_one_ok,
+       rewrite_one_noparents,
+       rewrite_one_error
+};
+
+typedef enum rewrite_result (*rewrite_parent_fn_t)(struct rev_info *revs, struct commit **pp);
+
+extern int rewrite_parents(struct rev_info *revs, struct commit *commit,
+       rewrite_parent_fn_t rewrite_parent);
 #endif