X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=revision.h;h=6c2becad1394829142a3775a43097f65de4e524a;hb=9bc8b776c54e9b4c3b753639b4ae70acb2ff8db6;hp=0bed3c04ff777276f04f4f13b10764653923430f;hpb=a4a88b2bab3b6fb0b30f63418701f42388e0fe0a;p=git.git diff --git a/revision.h b/revision.h index 0bed3c04..6c2becad 100644 --- a/revision.h +++ b/revision.h @@ -4,6 +4,12 @@ #define SEEN (1u<<0) #define UNINTERESTING (1u<<1) #define TREECHANGE (1u<<2) +#define SHOWN (1u<<3) +#define TMP_MARK (1u<<4) /* for isolated cases; clean after use */ + +struct rev_info; + +typedef void (prune_fn_t)(struct rev_info *revs, struct commit *commit); struct rev_info { /* Starting list */ @@ -12,10 +18,12 @@ struct rev_info { /* Basic information */ const char *prefix; - const char **paths; + void *prune_data; + prune_fn_t *prune_fn; /* Traversal flags */ unsigned int dense:1, + no_merges:1, remove_empty_trees:1, lifo:1, topo_order:1, @@ -30,9 +38,20 @@ struct rev_info { int max_count; unsigned long max_age; unsigned long min_age; + + topo_sort_set_fn_t topo_setter; + topo_sort_get_fn_t topo_getter; }; +#define REV_TREE_SAME 0 +#define REV_TREE_NEW 1 +#define REV_TREE_DIFFERENT 2 + /* revision.c */ +extern int rev_same_tree_as_empty(struct tree *t1); +extern int rev_compare_tree(struct tree *t1, struct tree *t2); + +extern void init_revisions(struct rev_info *revs); extern int setup_revisions(int argc, const char **argv, struct rev_info *revs, const char *def); extern void prepare_revision_walk(struct rev_info *revs); extern struct commit *get_revision(struct rev_info *revs);