#ifndef SEQUENCER_H
#define SEQUENCER_H
#include "strbuf.h"
#include "strvec.h"
#include "wt-status.h"
struct commit;
struct index_state;
struct repository;
const char *git_path_commit_editmsg(void);
const char *rebase_path_todo(void);
const char *rebase_path_todo_backup(void);
const char *rebase_path_dropped(void);
extern const char *rebase_resolvemsg;
#define APPEND_SIGNOFF_DEDUP …
enum replay_action { … };
enum commit_msg_cleanup_mode { … };
struct replay_ctx;
struct replay_ctx* replay_ctx_new(void);
struct replay_opts { … };
#define REPLAY_OPTS_INIT …
enum todo_command { … };
struct todo_item { … };
struct todo_list { … };
#define TODO_LIST_INIT …
int todo_list_parse_insn_buffer(struct repository *r, struct replay_opts *opts,
char *buf, struct todo_list *todo_list);
int todo_list_write_to_file(struct repository *r, struct todo_list *todo_list,
const char *file, const char *shortrevisions,
const char *shortonto, int num, unsigned flags);
void todo_list_release(struct todo_list *todo_list);
const char *todo_item_get_arg(struct todo_list *todo_list,
struct todo_item *item);
void todo_list_filter_update_refs(struct repository *r,
struct todo_list *todo_list);
void sequencer_init_config(struct replay_opts *opts);
int sequencer_pick_revisions(struct repository *repo,
struct replay_opts *opts);
int sequencer_continue(struct repository *repo, struct replay_opts *opts);
int sequencer_rollback(struct repository *repo, struct replay_opts *opts);
int sequencer_skip(struct repository *repo, struct replay_opts *opts);
void replay_opts_release(struct replay_opts *opts);
int sequencer_remove_state(struct replay_opts *opts);
#define TODO_LIST_KEEP_EMPTY …
#define TODO_LIST_SHORTEN_IDS …
#define TODO_LIST_ABBREVIATE_CMDS …
#define TODO_LIST_REBASE_MERGES …
#define TODO_LIST_REBASE_COUSINS …
#define TODO_LIST_APPEND_TODO_HELP …
#define TODO_LIST_ROOT_WITH_ONTO …
#define TODO_LIST_REAPPLY_CHERRY_PICKS …
#define TODO_LIST_WARN_SKIPPED_CHERRY_PICKS …
int sequencer_make_script(struct repository *r, struct strbuf *out, int argc,
const char **argv, unsigned flags);
int complete_action(struct repository *r, struct replay_opts *opts, unsigned flags,
const char *shortrevisions, const char *onto_name,
struct commit *onto, const struct object_id *orig_head,
struct string_list *commands, unsigned autosquash,
unsigned update_refs,
struct todo_list *todo_list);
int todo_list_rearrange_squash(struct todo_list *todo_list);
void append_signoff(struct strbuf *msgbuf, size_t ignore_footer, unsigned flag);
void append_conflicts_hint(struct index_state *istate,
struct strbuf *msgbuf, enum commit_msg_cleanup_mode cleanup_mode);
enum commit_msg_cleanup_mode get_cleanup_mode(const char *cleanup_arg,
int use_editor);
void cleanup_message(struct strbuf *msgbuf,
enum commit_msg_cleanup_mode cleanup_mode, int verbose);
int message_is_empty(const struct strbuf *sb,
enum commit_msg_cleanup_mode cleanup_mode);
int template_untouched(const struct strbuf *sb, const char *template_file,
enum commit_msg_cleanup_mode cleanup_mode);
int update_head_with_reflog(const struct commit *old_head,
const struct object_id *new_head,
const char *action, const struct strbuf *msg,
struct strbuf *err);
void commit_post_rewrite(struct repository *r,
const struct commit *current_head,
const struct object_id *new_head);
void create_autostash(struct repository *r, const char *path);
void create_autostash_ref(struct repository *r, const char *refname);
int save_autostash(const char *path);
int save_autostash_ref(struct repository *r, const char *refname);
int apply_autostash(const char *path);
int apply_autostash_oid(const char *stash_oid);
int apply_autostash_ref(struct repository *r, const char *refname);
#define SUMMARY_INITIAL_COMMIT …
#define SUMMARY_SHOW_AUTHOR_DATE …
void print_commit_summary(struct repository *repo,
const char *prefix,
const struct object_id *oid,
unsigned int flags);
#define READ_ONELINER_SKIP_IF_EMPTY …
#define READ_ONELINER_WARN_MISSING …
int read_oneliner(struct strbuf *buf,
const char *path, unsigned flags);
int read_author_script(const char *path, char **name, char **email, char **date,
int allow_missing);
int write_basic_state(struct replay_opts *opts, const char *head_name,
struct commit *onto, const struct object_id *orig_head);
void sequencer_post_commit_cleanup(struct repository *r, int verbose);
int sequencer_get_last_command(struct repository* r,
enum replay_action *action);
int sequencer_determine_whence(struct repository *r, enum commit_whence *whence);
int sequencer_get_update_refs_state(const char *wt_dir, struct string_list *refs);
#endif