git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 3/4] rebase -i: use struct object_id when writing state

From
PGPhillip Wood via GitGitGadget <gitgitgadget@gmail.com>
Date
Nov 4, 2020, 15:29 UTC
Message-ID
<076d212915c9a1706d18c5b1829bf0bf22bf5095.1604503780.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.773.v2.git.1604503780.gitgitgadget@gmail.com>
From: Phillip Wood <phillip.wood@dunelm.org.uk>

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 <phillip.wood@dunelm.org.uk>
---
 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);
-- 
gitgitgadget
Previous: Phillip Wood via GitGitGadgetNext: Phillip Wood via GitGitGadget
Message 13 of 15 in “rebase -i: fix ORIG_HEAD handling”
  1. 0/4 rebase -i: fix ORIG_HEAD handlingPhillip Wood via GitGitGadget, Oct 27, 2020
  2. 4/4 rebase -i: simplify get_revision_ranges()Phillip Wood via GitGitGadget, Oct 27, 2020
  3. 3/4 rebase -i: use struct object_id when writing statePhillip Wood via GitGitGadget, Oct 27, 2020
  4. 1/4 rebase -i: stop overwriting ORIG_HEAD bufferPhillip Wood via GitGitGadget, Oct 27, 2020
  5. Junio C HamanoOct 27, 2020
  6. Phillip WoodOct 31, 2020
  7. herr.kasteNov 2, 2020
  8. Junio C HamanoNov 3, 2020
  9. herr.kasteNov 3, 2020
  10. 2/4 rebase -i: use struct object_id rather than looking up commitPhillip Wood via GitGitGadget, Oct 27, 2020
  11. 0/4 rebase -i: fix ORIG_HEAD handlingPhillip Wood via GitGitGadget, Nov 4, 2020
  12. 1/4 rebase -i: stop overwriting ORIG_HEAD bufferPhillip Wood via GitGitGadget, Nov 4, 2020
  13. 3/4 rebase -i: use struct object_id when writing statePhillip Wood via GitGitGadget, Nov 4, 2020
  14. 4/4 rebase -i: simplify get_revision_ranges()Phillip Wood via GitGitGadget, Nov 4, 2020
  15. 2/4 rebase -i: use struct object_id rather than looking up commitPhillip Wood via GitGitGadget, Nov 4, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.