revision.hon commit Merge part of 'jc/diff' into next (213523f)
   1#ifndef REVISION_H
   2#define REVISION_H
   3
   4#define SEEN            (1u<<0)
   5#define UNINTERESTING   (1u<<1)
   6
   7struct 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                        limited:1,
  26                        unpacked:1;
  27
  28        /* special limits */
  29        int max_count;
  30        unsigned long max_age;
  31        unsigned long min_age;
  32};
  33
  34/* revision.c */
  35extern int setup_revisions(int argc, const char **argv, struct rev_info *revs);
  36extern void mark_parents_uninteresting(struct commit *commit);
  37extern void mark_tree_uninteresting(struct tree *tree);
  38
  39struct name_path {
  40        struct name_path *up;
  41        int elem_len;
  42        const char *elem;
  43};
  44
  45extern struct object_list **add_object(struct object *obj,
  46                                       struct object_list **p,
  47                                       struct name_path *path,
  48                                       const char *name);
  49
  50#endif