summaryrefslogtreecommitdiff
path: root/revision.h
diff options
context:
space:
mode:
Diffstat (limited to 'revision.h')
-rw-r--r--revision.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/revision.h b/revision.h
index 31f08c4056..7cf848771b 100644
--- a/revision.h
+++ b/revision.h
@@ -1,6 +1,9 @@
#ifndef REVISION_H
#define REVISION_H
+#include "parse-options.h"
+#include "grep.h"
+
#define SEEN (1u<<0)
#define UNINTERESTING (1u<<1)
#define TREESAME (1u<<2)
@@ -10,6 +13,7 @@
#define CHILD_SHOWN (1u<<6)
#define ADDED (1u<<7) /* Parents already parsed and added? */
#define SYMMETRIC_LEFT (1u<<8)
+#define ALL_REV_FLAGS ((1u<<9)-1)
struct rev_info;
struct log_info;
@@ -24,6 +28,7 @@ struct rev_info {
/* Basic information */
const char *prefix;
+ const char *def;
void *prune_data;
unsigned int early_output;
@@ -37,6 +42,8 @@ struct rev_info {
simplify_history:1,
lifo:1,
topo_order:1,
+ simplify_merges:1,
+ simplify_by_decoration:1,
tag_objects:1,
tree_objects:1,
blob_objects:1,
@@ -47,7 +54,10 @@ struct rev_info {
left_right:1,
rewrite_parents:1,
print_parents:1,
+ show_source:1,
+ show_decorations:1,
reverse:1,
+ reverse_output_stage:1,
cherry_pick:1,
first_parent_only:1;
@@ -64,6 +74,7 @@ struct rev_info {
/* Format info */
unsigned int shown_one:1,
+ show_merge:1,
abbrev_commit:1,
use_terminator:1,
missing_newline:1;
@@ -87,7 +98,7 @@ struct rev_info {
int show_log_size;
/* Filter by commit log message */
- struct grep_opt *grep_filter;
+ struct grep_opt grep_filter;
/* Display history graph */
struct git_graph *graph;
@@ -103,6 +114,8 @@ struct rev_info {
struct diff_options pruning;
struct reflog_walk_info *reflog_info;
+ struct decoration children;
+ struct decoration merge_simplification;
};
#define REV_TREE_SAME 0
@@ -110,11 +123,16 @@ struct rev_info {
#define REV_TREE_DIFFERENT 2
/* revision.c */
+void read_revisions_from_stdin(struct rev_info *revs);
+
typedef void (*show_early_output_fn_t)(struct rev_info *, struct commit_list *);
-volatile show_early_output_fn_t show_early_output;
+extern volatile show_early_output_fn_t show_early_output;
extern void init_revisions(struct rev_info *revs, const char *prefix);
extern int setup_revisions(int argc, const char **argv, struct rev_info *revs, const char *def);
+extern void parse_revision_opt(struct rev_info *revs, struct parse_opt_ctx_t *ctx,
+ const struct option *options,
+ const char * const usagestr[]);
extern int handle_revision_arg(const char *arg, struct rev_info *revs,int flags,int cant_be_filename);
extern int prepare_revision_walk(struct rev_info *revs);