X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=revision.h;h=8970b57e3c7e2ca8d213258f1befb84ac06e3a13;hb=afcb536f288f28bb37acf11a5666a219b8f20200;hp=31e8f615677634a92992df8404c86a8c2184ff2a;hpb=fe041ad68d02d3c117c68f9bd3d37cd80208f31d;p=thirdparty%2Fgit.git diff --git a/revision.h b/revision.h index 31e8f61567..8970b57e3c 100644 --- a/revision.h +++ b/revision.h @@ -6,6 +6,12 @@ #define TREECHANGE (1u<<2) #define SHOWN (1u<<3) #define TMP_MARK (1u<<4) /* for isolated cases; clean after use */ +#define BOUNDARY (1u<<5) +#define ADDED (1u<<6) /* Parents already parsed and added? */ + +struct rev_info; + +typedef void (prune_fn_t)(struct rev_info *revs, struct commit *commit); struct rev_info { /* Starting list */ @@ -14,7 +20,8 @@ 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, @@ -27,15 +34,31 @@ struct rev_info { blob_objects:1, edge_hint:1, limited:1, - unpacked:1; + unpacked:1, + boundary:1, + parents:1; /* special limits */ int max_count; unsigned long max_age; unsigned long min_age; + + /* paths limiting */ + struct diff_options diffopt; + + 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 rev_info *, struct tree *t1); +extern int rev_compare_tree(struct rev_info *, 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);