Skip to content
This repository
Newer
Older
100644 238 lines (201 sloc) 5.896 kb
ae563542 »
2006-02-25 First cut at libifying revlist generation
1 #ifndef REVISION_H
2 #define REVISION_H
3
6b61ec05 »
2008-07-09 revisions: refactor handle_revision_opt into parse_revision_opt.
4 #include "parse-options.h"
0843acfd »
2008-08-25 Fix "git log -i --grep"
5 #include "grep.h"
894a9d33 »
2010-03-12 Support showing notes from more than one notes tree
6 #include "notes.h"
6b61ec05 »
2008-07-09 revisions: refactor handle_revision_opt into parse_revision_opt.
7
ae563542 »
2006-02-25 First cut at libifying revlist generation
8 #define SEEN (1u<<0)
9 #define UNINTERESTING (1u<<1)
7dc0fe3b »
2007-11-12 Fix parent rewriting in --early-output
10 #define TREESAME (1u<<2)
765ac8ec »
2006-02-28 Rip out merge-order and make "git log <paths>..." work again.
11 #define SHOWN (1u<<3)
7ae0b0cb »
2006-03-01 git-log (internal): more options.
12 #define TMP_MARK (1u<<4) /* for isolated cases; clean after use */
384e99a4 »
2006-03-27 rev-list --boundary
13 #define BOUNDARY (1u<<5)
2b064697 »
2007-03-05 revision traversal: retire BOUNDARY_SHOW
14 #define CHILD_SHOWN (1u<<6)
1b65a5aa »
2006-04-16 rev-list --boundary: show boundary commits even when limited otherwise.
15 #define ADDED (1u<<7) /* Parents already parsed and added? */
577ed5c2 »
2006-10-22 rev-list --left-right
16 #define SYMMETRIC_LEFT (1u<<8)
adbbb31e »
2011-03-07 revision.c: introduce --cherry-mark
17 #define PATCHSAME (1u<<9)
18 #define ALL_REV_FLAGS ((1u<<10)-1)
ae563542 »
2006-02-25 First cut at libifying revlist generation
19
33e7018c »
2009-08-15 git-log: allow --decorate[=short|full]
20 #define DECORATE_SHORT_REFS 1
21 #define DECORATE_FULL_REFS 2
22
8efdc326 »
2006-03-10 rev-lib: Make it easy to do rename tracking (take 2)
23 struct rev_info;
91539833 »
2006-04-17 Log message printout cleanups
24 struct log_info;
894a9d33 »
2010-03-12 Support showing notes from more than one notes tree
25 struct string_list;
8efdc326 »
2006-03-10 rev-lib: Make it easy to do rename tracking (take 2)
26
281eee47 »
2011-08-25 revision: keep track of the end-user input from the command line
27 struct rev_cmdline_info {
28 unsigned int nr;
29 unsigned int alloc;
30 struct rev_cmdline_entry {
31 struct object *item;
32 const char *name;
33 enum {
34 REV_CMD_REF,
35 REV_CMD_PARENTS_ONLY,
36 REV_CMD_LEFT,
37 REV_CMD_RIGHT,
38 REV_CMD_REV
39 } whence;
40 unsigned flags;
41 } *rev;
42 };
43
ae563542 »
2006-02-25 First cut at libifying revlist generation
44 struct rev_info {
45 /* Starting list */
46 struct commit_list *commits;
1f1e895f »
2006-06-19 Add "named object array" concept
47 struct object_array pending;
ae563542 »
2006-02-25 First cut at libifying revlist generation
48
86ab4906 »
2007-03-05 revision walker: Fix --boundary when limited
49 /* Parents of shown commits */
50 struct object_array boundary_commits;
51
281eee47 »
2011-08-25 revision: keep track of the end-user input from the command line
52 /* The end-points specified by the end user */
53 struct rev_cmdline_info cmdline;
54
ae563542 »
2006-02-25 First cut at libifying revlist generation
55 /* Basic information */
56 const char *prefix;
02e54220 »
2008-07-08 revisions: split handle_revision_opt() from setup_revisions()
57 const char *def;
afe069d1 »
2010-12-17 struct rev_info: convert prune_data to struct pathspec
58 struct pathspec prune_data;
cc243c3c »
2011-05-18 show: --ignore-missing
59 unsigned int early_output:1,
60 ignore_missing:1;
cdcefbc9 »
2007-11-03 Add "--early-output" log flag for interactive GUI use
61
ae563542 »
2006-02-25 First cut at libifying revlist generation
62 /* Traversal flags */
63 unsigned int dense:1,
53b2c823 »
2007-11-05 revision walker: mini clean-up
64 prune:1,
ba1d4505 »
2006-04-15 Tentative built-in "git show"
65 no_walk:1,
3131b713 »
2008-02-09 Add "--show-all" revision walker flag for debugging
66 show_all:1,
ae563542 »
2006-02-25 First cut at libifying revlist generation
67 remove_empty_trees:1,
9202434c »
2006-06-11 gitweb.cgi history not shown
68 simplify_history:1,
ae563542 »
2006-02-25 First cut at libifying revlist generation
69 lifo:1,
70 topo_order:1,
6546b593 »
2008-07-31 revision traversal: show full history with merge simplification
71 simplify_merges:1,
78892e32 »
2008-11-03 revision traversal: '--simplify-by-decoration'
72 simplify_by_decoration:1,
ae563542 »
2006-02-25 First cut at libifying revlist generation
73 tag_objects:1,
74 tree_objects:1,
75 blob_objects:1,
5a48d240 »
2011-09-01 rev-list --verify-object
76 verify_objects:1,
d9a83684 »
2006-02-27 Splitting rev-list into revisions lib, end of beginning.
77 edge_hint:1,
78 limited:1,
03a9683d »
2009-02-28 Simplify is_kept_pack()
79 unpacked:1,
86ab4906 »
2007-03-05 revision walker: Fix --boundary when limited
80 boundary:2,
f69c5018 »
2010-06-10 rev-list: introduce --count option
81 count:1,
74bd9029 »
2006-12-16 Teach all of log family --left-right output.
82 left_right:1,
60adf7d7 »
2011-02-21 revlist.c: introduce --left/right-only for unsymmetric picking
83 left_only:1,
84 right_only:1,
885cf808 »
2008-05-04 revision API: split parent rewriting and parent printing options
85 rewrite_parents:1,
86 print_parents:1,
0f3a290b »
2008-10-27 Add a 'source' decorator for commits
87 show_source:1,
d467a525 »
2008-11-03 Make '--decorate' set an explicit 'show_decorations' flag
88 show_decorations:1,
0053e902 »
2007-03-13 git-log --first-parent: show only the first parent log
89 reverse:1,
498bcd31 »
2008-08-29 rev-list: fix --reverse interaction with --parents
90 reverse_output_stage:1,
d7a17cad »
2007-04-09 git-log --cherry-pick A...B
91 cherry_pick:1,
adbbb31e »
2011-03-07 revision.c: introduce --cherry-mark
92 cherry_mark:1,
ad3f9a71 »
2009-10-27 Add '--bisect' revision machinery argument
93 bisect:1,
ebdc94f3 »
2010-04-20 revision: --ancestry-path
94 ancestry_path:1,
0053e902 »
2007-03-13 git-log --first-parent: show only the first parent log
95 first_parent_only:1;
ae563542 »
2006-02-25 First cut at libifying revlist generation
96
cd2bdc53 »
2006-04-14 Common option parsing for "git log --diff" and friends
97 /* Diff flags */
98 unsigned int diff:1,
99 full_diff:1,
100 show_root_diff:1,
101 no_commit_id:1,
102 verbose_header:1,
103 ignore_merges:1,
104 combine_merges:1,
105 dense_combined_merges:1,
106 always_show_header:1;
107
108 /* Format info */
91539833 »
2006-04-17 Log message printout cleanups
109 unsigned int shown_one:1,
02e54220 »
2008-07-08 revisions: split handle_revision_opt() from setup_revisions()
110 show_merge:1,
66b2ed09 »
2010-01-20 Fix "log" family not to be too agressive about showing notes
111 show_notes:1,
112 show_notes_given:1,
0c37f1fc »
2011-10-18 log: --show-signature
113 show_signature:1,
66b2ed09 »
2010-01-20 Fix "log" family not to be too agressive about showing notes
114 pretty_given:1,
4da45bef »
2008-04-07 log: teach "terminator" vs "separator" mode to "--pretty=format"
115 abbrev_commit:1,
0c47695a »
2011-05-18 Add log.abbrevCommit config variable
116 abbrev_commit_given:1,
7fefda5c »
2008-05-04 log and rev-list: add --graph option
117 use_terminator:1,
f4ea32f0 »
2009-09-24 improve reflog date/number heuristic
118 missing_newline:1,
9553d2b2 »
2011-05-26 format-patch: preserve subject newlines with -k
119 date_mode_explicit:1,
120 preserve_subject:1;
8b3dce56 »
2009-11-03 Teach --stdin option to "log" family
121 unsigned int disable_stdin:1;
4a43d374 »
2011-10-01 revision: add leak_pending flag
122 unsigned int leak_pending:1;
8b3dce56 »
2009-11-03 Teach --stdin option to "log" family
123
a7b02ccf »
2007-04-24 Add --date={local,relative,default}
124 enum date_mode date_mode;
106d710b »
2006-09-06 pack-objects --unpacked=<existing pack> option.
125
cd2bdc53 »
2006-04-14 Common option parsing for "git log --diff" and friends
126 unsigned int abbrev;
127 enum cmit_fmt commit_format;
91539833 »
2006-04-17 Log message printout cleanups
128 struct log_info *loginfo;
596524b3 »
2006-05-05 Teach fmt-patch about --numbered
129 int nr, total;
698ce6f8 »
2006-05-20 fmt-patch: Support --attach
130 const char *mime_boundary;
108dab28 »
2009-03-22 format-patch: --attach/inline uses filename instead of SHA1
131 const char *patch_suffix;
132 int numbered_files;
e1a37346 »
2008-02-18 Improve message-id generation flow control for format-patch
133 char *message_id;
b079c50e »
2009-02-19 format-patch: track several references
134 struct string_list *ref_message_ids;
cf2251b6 »
2006-05-31 format-patch --signoff
135 const char *add_signoff;
20ff0680 »
2006-06-02 format-patch: resurrect extra headers from config
136 const char *extra_headers;
52883fbd »
2006-12-25 Teach log family --encoding
137 const char *log_reencode;
2d9e4a47 »
2007-04-11 Add custom subject prefix support to format-patch (take 3)
138 const char *subject_prefix;
c112f689 »
2007-03-04 format-patch: add --inline option and make --attach a true attachment
139 int no_inline;
9fa3465d »
2007-07-20 Add --log-size to git log to print message size
140 int show_log_size;
cd2bdc53 »
2006-04-14 Common option parsing for "git log --diff" and friends
141
8ecae9b0 »
2006-09-17 revision traversal: prepare for commit log match.
142 /* Filter by commit log message */
0843acfd »
2008-08-25 Fix "git log -i --grep"
143 struct grep_opt grep_filter;
8ecae9b0 »
2006-09-17 revision traversal: prepare for commit log match.
144
7fefda5c »
2008-05-04 log and rev-list: add --graph option
145 /* Display history graph */
146 struct git_graph *graph;
147
ae563542 »
2006-02-25 First cut at libifying revlist generation
148 /* special limits */
d5db6c9e »
2006-12-19 revision: --skip=<n>
149 int skip_count;
ae563542 »
2006-02-25 First cut at libifying revlist generation
150 int max_count;
151 unsigned long max_age;
152 unsigned long min_age;
ad5aeede »
2011-03-21 revision.c: introduce --min-parents and --max-parents options
153 int min_parents;
154 int max_parents;
8efdc326 »
2006-03-10 rev-lib: Make it easy to do rename tracking (take 2)
155
cd2bdc53 »
2006-04-14 Common option parsing for "git log --diff" and friends
156 /* diff info for patches and for paths limiting */
c4e05b1a »
2006-04-10 blame and friends: adjust to multiple pathspec change.
157 struct diff_options diffopt;
cd2bdc53 »
2006-04-14 Common option parsing for "git log --diff" and friends
158 struct diff_options pruning;
c4e05b1a »
2006-04-10 blame and friends: adjust to multiple pathspec change.
159
8860fd42 »
2007-01-11 Teach the revision walker to walk by reflogs with --walk-reflogs
160 struct reflog_walk_info *reflog_info;
f35f5603 »
2008-04-03 revision traversal: --children option
161 struct decoration children;
faf0156b »
2008-08-14 revision --simplify-merges: use decoration instead of commit->util field
162 struct decoration merge_simplification;
894a9d33 »
2010-03-12 Support showing notes from more than one notes tree
163
164 /* notes-specific options: which refs to show */
165 struct display_notes_opt notes_opt;
f69c5018 »
2010-06-10 rev-list: introduce --count option
166
167 /* commit counts */
168 int count_left;
169 int count_right;
b388e14b »
2011-04-26 rev-list --count: separate count for --cherry-mark
170 int count_same;
ae563542 »
2006-02-25 First cut at libifying revlist generation
171 };
172
8efdc326 »
2006-03-10 rev-lib: Make it easy to do rename tracking (take 2)
173 #define REV_TREE_SAME 0
ceff8e7a »
2009-06-02 Clean up and simplify rev_compare_tree()
174 #define REV_TREE_NEW 1 /* Only new files */
175 #define REV_TREE_OLD 2 /* Only files removed */
176 #define REV_TREE_DIFFERENT 3 /* Mixed changes */
8efdc326 »
2006-03-10 rev-lib: Make it easy to do rename tracking (take 2)
177
ae563542 »
2006-02-25 First cut at libifying revlist generation
178 /* revision.c */
cdcefbc9 »
2007-11-03 Add "--early-output" log flag for interactive GUI use
179 typedef void (*show_early_output_fn_t)(struct rev_info *, struct commit_list *);
4dc1db0b »
2008-08-20 revision.h: make show_early_output an extern which is defined in revi…
180 extern volatile show_early_output_fn_t show_early_output;
8efdc326 »
2006-03-10 rev-lib: Make it easy to do rename tracking (take 2)
181
32962c9b »
2010-03-08 revision: introduce setup_revision_opt
182 struct setup_revision_opt {
183 const char *def;
b4490059 »
2010-03-08 show -c: show patch text
184 void (*tweak)(struct rev_info *, struct setup_revision_opt *);
9ef6aeb0 »
2010-07-07 setup_revisions(): Allow walking history in a submodule
185 const char *submodule;
6d5b93f2 »
2012-04-14 cherry-pick: do not expect file arguments
186 int assume_dashdash;
d5f6b1d7 »
2012-07-02 revision.c: the "log" family, except for "show", takes committish
187 unsigned revarg_opt;
32962c9b »
2010-03-08 revision: introduce setup_revision_opt
188 };
189
db6296a5 »
2006-07-28 Call setup_git_directory() early
190 extern void init_revisions(struct rev_info *revs, const char *prefix);
32962c9b »
2010-03-08 revision: introduce setup_revision_opt
191 extern int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct setup_revision_opt *);
6b61ec05 »
2008-07-09 revisions: refactor handle_revision_opt into parse_revision_opt.
192 extern void parse_revision_opt(struct rev_info *revs, struct parse_opt_ctx_t *ctx,
193 const struct option *options,
194 const char * const usagestr[]);
8e676e8b »
2012-07-02 revision.c: allow handle_revision_arg() to take other flags
195 #define REVARG_CANNOT_BE_FILENAME 01
d5f6b1d7 »
2012-07-02 revision.c: the "log" family, except for "show", takes committish
196 #define REVARG_COMMITTISH 02
8e676e8b »
2012-07-02 revision.c: allow handle_revision_arg() to take other flags
197 extern int handle_revision_arg(const char *arg, struct rev_info *revs, int flags, unsigned revarg_opt);
5d6f0935 »
2006-09-05 revision.c: allow injecting revision parameters after setup_revisions().
198
bcc0a3ea »
2012-03-29 Teach revision walking machinery to walk multiple times sequencially
199 extern void reset_revision_walk(void);
cc0e6c5a »
2007-05-04 Handle return code of parse_commit in revision machinery
200 extern int prepare_revision_walk(struct rev_info *revs);
a4a88b2b »
2006-02-28 git-rev-list libification: rev-list walking
201 extern struct commit *get_revision(struct rev_info *revs);
1df2d656 »
2011-03-07 rev-list/log: factor out revision mark generation
202 extern char *get_revision_mark(const struct rev_info *revs, const struct commit *commit);
b1b47554 »
2011-03-10 git-log: put space after commit mark
203 extern void put_revision_mark(const struct rev_info *revs, const struct commit *commit);
a4a88b2b »
2006-02-28 git-rev-list libification: rev-list walking
204
ae563542 »
2006-02-25 First cut at libifying revlist generation
205 extern void mark_parents_uninteresting(struct commit *commit);
206 extern void mark_tree_uninteresting(struct tree *tree);
207
208 struct name_path {
209 struct name_path *up;
210 int elem_len;
211 const char *elem;
212 };
213
cf2ab916 »
2009-04-10 show_object(): push path_name() call further down
214 char *path_name(const struct name_path *path, const char *name);
8d2dfc49 »
2009-04-10 process_{tree,blob}: show objects without buffering
215
91f17516 »
2011-08-17 revision.c: add show_object_with_name() helper function
216 extern void show_object_with_name(FILE *, struct object *, const struct name_path *, const char *);
217
1f1e895f »
2006-06-19 Add "named object array" concept
218 extern void add_object(struct object *obj,
219 struct object_array *p,
220 struct name_path *path,
221 const char *name);
222
223 extern void add_pending_object(struct rev_info *revs, struct object *obj, const char *name);
26c3177e »
2011-10-01 revision: factor out add_pending_sha1
224 extern void add_pending_sha1(struct rev_info *revs, const char *name, const unsigned char *sha1, unsigned int flags);
ae563542 »
2006-02-25 First cut at libifying revlist generation
225
3384a2df »
2007-12-11 shortlog: default to HEAD when the standard input is a tty
226 extern void add_head_to_pending(struct rev_info *);
227
252a7c02 »
2007-11-04 Enhance --early-output format
228 enum commit_action {
229 commit_ignore,
230 commit_show,
231 commit_error
232 };
233
beb5af43 »
2009-08-18 graph API: fix bug in graph_is_interesting()
234 extern enum commit_action get_commit_action(struct rev_info *revs, struct commit *commit);
252a7c02 »
2007-11-04 Enhance --early-output format
235 extern enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit);
236
ae563542 »
2006-02-25 First cut at libifying revlist generation
237 #endif
Something went wrong with that request. Please try again.