summaryrefslogtreecommitdiff
path: root/revision.h
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2006-03-10 22:32:59 -0800
committerLibravatar Junio C Hamano <junkio@cox.net>2006-03-10 22:32:59 -0800
commitc301a0d2cf49b57f246ad73d0fd9f1cf203e7c16 (patch)
treeb548ce5d5211efb71df3615973bd36f11282014b /revision.h
parentMerge branch 'jc/fsck' into next (diff)
parentblame: Rename detection (take 2) (diff)
downloadtgif-c301a0d2cf49b57f246ad73d0fd9f1cf203e7c16.tar.xz
Merge branch 'fk/blame' into next
* fk/blame: blame: Rename detection (take 2) rev-lib: Make it easy to do rename tracking (take 2) Make it possible to not clobber object.util in sort_in_topological_order (take 2) Add git-imap-send, derived from isync 1.0.1. repack: prune loose objects when -d is given try_to_simplify_commit(): do not skip inspecting tree change at boundary. Fix t1200 test for breakage caused by removal of full-stop at the end of fast-forward message. Describe how to add extra mail header lines in mail generated by git-format-patch. Document the --attach flag. allow double click on current HEAD id after git-pull
Diffstat (limited to 'revision.h')
-rw-r--r--revision.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/revision.h b/revision.h
index 31e8f61567..6c2becad13 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);