Merge branch 'kh/svnimport' into next
[git.git] / revision.h
1 #ifndef REVISION_H
2 #define REVISION_H
3
4 #define SEEN            (1u<<0)
5 #define UNINTERESTING   (1u<<1)
6
7 struct rev_info {
8         /* Starting list */
9         struct commit_list *commits;
10         struct object_list *pending_objects;
11
12         /* Basic information */
13         const char *prefix;
14         const char **paths;
15
16         /* Traversal flags */
17         unsigned int    dense:1,
18                         remove_empty_trees:1,
19                         lifo:1,
20                         topo_order:1,
21                         tag_objects:1,
22                         tree_objects:1,
23                         blob_objects:1,
24                         edge_hint:1;
25
26         /* special limits */
27         int max_count;
28         unsigned long max_age;
29         unsigned long min_age;
30 };
31
32 /* revision.c */
33 extern int setup_revisions(int argc, const char **argv, struct rev_info *revs);
34 extern void mark_parents_uninteresting(struct commit *commit);
35 extern void mark_tree_uninteresting(struct tree *tree);
36
37 struct name_path {
38         struct name_path *up;
39         int elem_len;
40         const char *elem;
41 };
42
43 extern struct object_list **add_object(struct object *obj,
44                                        struct object_list **p,
45                                        struct name_path *path,
46                                        const char *name);
47
48 #endif