archive: handle commits with an empty tree
[git/jnareb-git.git] / sequencer.h
blob9d57d57524d411c54d55346a5ecff67bc256595c
1 #ifndef SEQUENCER_H
2 #define SEQUENCER_H
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"
9 enum replay_action {
10 REPLAY_REVERT,
11 REPLAY_PICK
14 enum replay_subcommand {
15 REPLAY_NONE,
16 REPLAY_REMOVE_STATE,
17 REPLAY_CONTINUE,
18 REPLAY_ROLLBACK
21 struct replay_opts {
22 enum replay_action action;
23 enum replay_subcommand subcommand;
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 allow_empty_message;
34 int keep_redundant_commits;
36 int mainline;
38 /* Merge strategy */
39 const char *strategy;
40 const char **xopts;
41 size_t xopts_nr, xopts_alloc;
43 /* Only used by REPLAY_NONE */
44 struct rev_info *revs;
47 int sequencer_pick_revisions(struct replay_opts *opts);
49 extern const char sign_off_header[];
51 void append_signoff(struct strbuf *msgbuf, int ignore_footer);
53 #endif