diff options
author | Fredrik Kuivinen <freku045@student.liu.se> | 2006-03-10 10:21:39 +0100 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-03-10 22:22:00 -0800 |
commit | 8efdc326c9681e814d79e8da6097c187388dc0c4 (patch) | |
tree | eacf0f6d9bd219173b572b77a8763a382b5dd8de /revision.h | |
parent | 6b6dcfc297722f5a5324c4cb22f45adccd4c84ef (diff) | |
download | git-8efdc326c9681e814d79e8da6097c187388dc0c4.tar.gz git-8efdc326c9681e814d79e8da6097c187388dc0c4.tar.xz |
rev-lib: Make it easy to do rename tracking (take 2)
prune_fn in the rev_info structure is called in place of
try_to_simplify_commit. This makes it possible to do rename tracking
with a custom try_to_simplify_commit-like function.
This commit also introduces init_revisions which initialises the rev_info
structure with default values.
Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'revision.h')
-rw-r--r-- | revision.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/revision.h b/revision.h index 31e8f6156..6c2becad1 100644 --- a/revision.h +++ b/revision.h @@ -7,6 +7,10 @@ #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 */ struct commit_list *commits; @@ -14,7 +18,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, @@ -33,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); |