|  | #ifndef SEQUENCER_H | 
|  | #define SEQUENCER_H | 
|  |  | 
|  | #define SEQ_DIR		"sequencer" | 
|  | #define SEQ_HEAD_FILE	"sequencer/head" | 
|  | #define SEQ_TODO_FILE	"sequencer/todo" | 
|  | #define SEQ_OPTS_FILE	"sequencer/opts" | 
|  |  | 
|  | #define APPEND_SIGNOFF_DEDUP (1u << 0) | 
|  |  | 
|  | enum replay_action { | 
|  | REPLAY_REVERT, | 
|  | REPLAY_PICK | 
|  | }; | 
|  |  | 
|  | enum replay_subcommand { | 
|  | REPLAY_NONE, | 
|  | REPLAY_REMOVE_STATE, | 
|  | REPLAY_CONTINUE, | 
|  | REPLAY_ROLLBACK | 
|  | }; | 
|  |  | 
|  | struct replay_opts { | 
|  | enum replay_action action; | 
|  | enum replay_subcommand subcommand; | 
|  |  | 
|  | /* Boolean options */ | 
|  | int edit; | 
|  | int record_origin; | 
|  | int no_commit; | 
|  | int signoff; | 
|  | int allow_ff; | 
|  | int allow_rerere_auto; | 
|  | int allow_empty; | 
|  | int allow_empty_message; | 
|  | int keep_redundant_commits; | 
|  |  | 
|  | int mainline; | 
|  |  | 
|  | /* Merge strategy */ | 
|  | const char *strategy; | 
|  | const char **xopts; | 
|  | size_t xopts_nr, xopts_alloc; | 
|  |  | 
|  | /* Only used by REPLAY_NONE */ | 
|  | struct rev_info *revs; | 
|  | }; | 
|  |  | 
|  | int sequencer_pick_revisions(struct replay_opts *opts); | 
|  |  | 
|  | extern const char sign_off_header[]; | 
|  |  | 
|  | void append_signoff(struct strbuf *msgbuf, int ignore_footer, unsigned flag); | 
|  |  | 
|  | #endif |