diff options
Diffstat (limited to 'sequencer.h')
-rw-r--r-- | sequencer.h | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/sequencer.h b/sequencer.h index 9f9ae291e3..d31c41f018 100644 --- a/sequencer.h +++ b/sequencer.h @@ -3,14 +3,15 @@ #include "cache.h" #include "strbuf.h" +#include "wt-status.h" struct commit; struct repository; const char *git_path_commit_editmsg(void); -const char *git_path_seq_dir(void); const char *rebase_path_todo(void); const char *rebase_path_todo_backup(void); +const char *rebase_path_dropped(void); #define APPEND_SIGNOFF_DEDUP (1u << 0) @@ -39,6 +40,7 @@ struct replay_opts { int allow_rerere_auto; int allow_empty; int allow_empty_message; + int drop_redundant_commits; int keep_redundant_commits; int verbose; int quiet; @@ -148,14 +150,13 @@ int sequencer_remove_state(struct replay_opts *opts); * `--onto`, we do not want to re-generate the root commits. */ #define TODO_LIST_ROOT_WITH_ONTO (1U << 6) - +#define TODO_LIST_REAPPLY_CHERRY_PICKS (1U << 7) int sequencer_make_script(struct repository *r, struct strbuf *out, int argc, const char **argv, unsigned flags); void todo_list_add_exec_commands(struct todo_list *todo_list, struct string_list *commands); -int check_todo_list_from_file(struct repository *r); int complete_action(struct repository *r, struct replay_opts *opts, unsigned flags, const char *shortrevisions, const char *onto_name, struct commit *onto, const char *orig_head, struct string_list *commands, @@ -190,8 +191,11 @@ void commit_post_rewrite(struct repository *r, const struct commit *current_head, const struct object_id *new_head); -int prepare_branch_to_be_rebased(struct repository *r, struct replay_opts *opts, - const char *commit); +void create_autostash(struct repository *r, const char *path, + const char *default_reflog_action); +int save_autostash(const char *path); +int apply_autostash(const char *path); +int apply_autostash_oid(const char *stash_oid); #define SUMMARY_INITIAL_COMMIT (1 << 0) #define SUMMARY_SHOW_AUTHOR_DATE (1 << 1) @@ -200,6 +204,20 @@ void print_commit_summary(struct repository *repo, const struct object_id *oid, unsigned int flags); +#define READ_ONELINER_SKIP_IF_EMPTY (1 << 0) +#define READ_ONELINER_WARN_MISSING (1 << 1) + +/* + * Reads a file that was presumably written by a shell script, i.e. with an + * end-of-line marker that needs to be stripped. + * + * Note that only the last end-of-line marker is stripped, consistent with the + * behavior of "$(cat path)" in a shell script. + * + * Returns 1 if the file was read, 0 if it could not be read or does not exist. + */ +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); void parse_strategy_opts(struct replay_opts *opts, char *raw_opts); @@ -208,4 +226,5 @@ int write_basic_state(struct replay_opts *opts, const char *head_name, 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); #endif /* SEQUENCER_H */ |