Git 1.7.12.2
[git.git] / sequencer.h
1 #ifndef SEQUENCER_H
2 #define SEQUENCER_H
3
4 #define SEQ_DIR         "sequencer"
5 #define SEQ_HEAD_FILE   "sequencer/head"
6 #define SEQ_TODO_FILE   "sequencer/todo"
7 #define SEQ_OPTS_FILE   "sequencer/opts"
8
9 enum replay_action {
10         REPLAY_REVERT,
11         REPLAY_PICK
12 };
13
14 enum replay_subcommand {
15         REPLAY_NONE,
16         REPLAY_REMOVE_STATE,
17         REPLAY_CONTINUE,
18         REPLAY_ROLLBACK
19 };
20
21 struct replay_opts {
22         enum replay_action action;
23         enum replay_subcommand subcommand;
24
25         /* Boolean options */
26         int edit;
27         int record_origin;
28         int no_commit;
29         int signoff;
30         int allow_ff;
31         int allow_rerere_auto;
32         int allow_empty;
33         int keep_redundant_commits;
34
35         int mainline;
36
37         /* Merge strategy */
38         const char *strategy;
39         const char **xopts;
40         size_t xopts_nr, xopts_alloc;
41
42         /* Only used by REPLAY_NONE */
43         struct rev_info *revs;
44 };
45
46 /* Removes SEQ_DIR. */
47 extern void remove_sequencer_state(void);
48
49 int sequencer_pick_revisions(struct replay_opts *opts);
50
51 #endif