From a2bb10d06db8a90920f1f518705a0bb9d39aa1db Mon Sep 17 00:00:00 2001 From: Phillip Wood Date: Wed, 4 Nov 2020 15:29:39 +0000 Subject: [PATCH] rebase -i: use struct object_id when writing state Rather than passing a string around pass the struct object_id that the string was created from call oid_hex() when we write the file. Signed-off-by: Phillip Wood Signed-off-by: Junio C Hamano --- builtin/rebase.c | 5 +++-- sequencer.c | 5 +++-- sequencer.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/builtin/rebase.c b/builtin/rebase.c index 4e4a5e774e..28e7b7f5ce 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -296,7 +296,8 @@ static int get_revision_ranges(struct commit *upstream, struct commit *onto, } static int init_basic_state(struct replay_opts *opts, const char *head_name, - struct commit *onto, const char *orig_head) + struct commit *onto, + const struct object_id *orig_head) { FILE *interactive; @@ -340,7 +341,7 @@ static int do_interactive_rebase(struct rebase_options *opts, unsigned flags) if (init_basic_state(&replay, opts->head_name ? opts->head_name : "detached HEAD", - opts->onto, head_hash)) { + opts->onto, &opts->orig_head)) { free(revisions); free(shortrevisions); diff --git a/sequencer.c b/sequencer.c index f79c3df861..2037f0ba66 100644 --- a/sequencer.c +++ b/sequencer.c @@ -2692,7 +2692,7 @@ static void write_strategy_opts(struct replay_opts *opts) } int write_basic_state(struct replay_opts *opts, const char *head_name, - struct commit *onto, const char *orig_head) + struct commit *onto, const struct object_id *orig_head) { if (head_name) write_file(rebase_path_head_name(), "%s\n", head_name); @@ -2700,7 +2700,8 @@ int write_basic_state(struct replay_opts *opts, const char *head_name, write_file(rebase_path_onto(), "%s\n", oid_to_hex(&onto->object.oid)); if (orig_head) - write_file(rebase_path_orig_head(), "%s\n", orig_head); + write_file(rebase_path_orig_head(), "%s\n", + oid_to_hex(orig_head)); if (opts->quiet) write_file(rebase_path_quiet(), "%s", ""); diff --git a/sequencer.h b/sequencer.h index ea56825488..cf201f2406 100644 --- a/sequencer.h +++ b/sequencer.h @@ -227,7 +227,7 @@ 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); int write_basic_state(struct replay_opts *opts, const char *head_name, - struct commit *onto, const char *orig_head); + 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); -- 2.32.0.93.g670b81a890