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

[PATCH v3 47/53] sequencer: convert fast_forward_to to struct object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
May 6, 2017, 22:10 UTC
Message-ID
<20170506221038.296722-48-sandals@crustytoothpaste.net>
In-Reply-To
<20170506221038.296722-1-sandals@crustytoothpaste.net>

fast_forward_to is required for checkout_fast_fowrard, which is required for parse_tree_indirect.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 sequencer.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/sequencer.c b/sequencer.c
index 218895fde..9ca352ac7 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -374,7 +374,7 @@ static void update_abort_safety_file(void)
 		write_file(git_path_abort_safety_file(), "%s", "");
 }
 
-static int fast_forward_to(const unsigned char *to, const unsigned char *from,
+static int fast_forward_to(const struct object_id *to, const struct object_id *from,
 			int unborn, struct replay_opts *opts)
 {
 	struct ref_transaction *transaction;
@@ -382,7 +382,7 @@ static int fast_forward_to(const unsigned char *to, const unsigned char *from,
 	struct strbuf err = STRBUF_INIT;
 
 	read_cache();
-	if (checkout_fast_forward(from, to, 1))
+	if (checkout_fast_forward(from->hash, to->hash, 1))
 		return -1; /* the callee should have complained already */
 
 	strbuf_addf(&sb, _("%s: fast-forward"), _(action_name(opts)));
@@ -390,7 +390,7 @@ static int fast_forward_to(const unsigned char *to, const unsigned char *from,
 	transaction = ref_transaction_begin(&err);
 	if (!transaction ||
 	    ref_transaction_update(transaction, "HEAD",
-				   to, unborn ? null_sha1 : from,
+				   to->hash, unborn ? null_sha1 : from->hash,
 				   0, sb.buf, &err) ||
 	    ref_transaction_commit(transaction, &err)) {
 		ref_transaction_free(transaction);
@@ -935,7 +935,7 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
 {
 	unsigned int flags = opts->edit ? EDIT_MSG : 0;
 	const char *msg_file = opts->edit ? NULL : git_path_merge_msg();
-	unsigned char head[20];
+	struct object_id head;
 	struct commit *base, *next, *parent;
 	const char *base_label, *next_label;
 	struct commit_message msg = { NULL, NULL, NULL, NULL };
@@ -949,12 +949,12 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
 		 * that represents the "current" state for merge-recursive
 		 * to work on.
 		 */
-		if (write_cache_as_tree(head, 0, NULL))
+		if (write_cache_as_tree(head.hash, 0, NULL))
 			return error(_("your index file is unmerged."));
 	} else {
-		unborn = get_sha1("HEAD", head);
+		unborn = get_oid("HEAD", &head);
 		if (unborn)
-			hashcpy(head, EMPTY_TREE_SHA1_BIN);
+			oidcpy(&head, &empty_tree_oid);
 		if (index_differs_from(unborn ? EMPTY_TREE_SHA1_HEX : "HEAD", 0, 0))
 			return error_dirty_index(opts);
 	}
@@ -990,11 +990,11 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
 			oid_to_hex(&commit->object.oid));
 
 	if (opts->allow_ff && !is_fixup(command) &&
-	    ((parent && !hashcmp(parent->object.oid.hash, head)) ||
+	    ((parent && !oidcmp(&parent->object.oid, &head)) ||
 	     (!parent && unborn))) {
 		if (is_rebase_i(opts))
 			write_author_script(msg.message);
-		res = fast_forward_to(commit->object.oid.hash, head, unborn,
+		res = fast_forward_to(&commit->object.oid, &head, unborn,
 			opts);
 		if (res || command != TODO_REWORD)
 			goto leave;
@@ -1081,7 +1081,7 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
 		res = -1;
 	else if (!opts->strategy || !strcmp(opts->strategy, "recursive") || command == TODO_REVERT) {
 		res = do_recursive_merge(base, next, base_label, next_label,
-					 head, &msgbuf, opts);
+					 head.hash, &msgbuf, opts);
 		if (res < 0)
 			return res;
 		res |= write_message(msgbuf.buf, msgbuf.len,
@@ -1097,7 +1097,7 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
 		commit_list_insert(next, &remotes);
 		res |= try_merge_command(opts->strategy,
 					 opts->xopts_nr, (const char **)opts->xopts,
-					common, sha1_to_hex(head), remotes);
+					common, oid_to_hex(&head), remotes);
 		free_commit_list(common);
 		free_commit_list(remotes);
 	}
Previous: brian m. carlsonNext: brian m. carlson
Message 47 of 56 in “object_id part 8”
  1. 00/53 object_id part 8brian m. carlson, May 6, 2017
  2. 02/53 Clean up outstanding object_id transforms.brian m. carlson, May 6, 2017
  3. 01/53 fetch-pack: convert to struct object_idbrian m. carlson, May 6, 2017
  4. 03/53 Convert struct cache_tree to use struct object_idbrian m. carlson, May 6, 2017
  5. 04/53 builtin/name-rev: convert to struct object_idbrian m. carlson, May 6, 2017
  6. 05/53 builtin/prune: convert to struct object_idbrian m. carlson, May 6, 2017
  7. 07/53 branch: convert to struct object_idbrian m. carlson, May 6, 2017
  8. 06/53 bundle: convert to struct object_idbrian m. carlson, May 6, 2017
  9. 08/53 builtin/blame: convert static function to struct object_idbrian m. carlson, May 6, 2017
  10. 09/53 builtin/rev-parse: convert to struct object_idbrian m. carlson, May 6, 2017
  11. 10/53 fast-import: convert internal structs to struct object_idbrian m. carlson, May 6, 2017
  12. 12/53 submodule: convert merge_submodule to use struct object_idbrian m. carlson, May 6, 2017
  13. 11/53 fast-import: convert to struct object_idbrian m. carlson, May 6, 2017
  14. 13/53 notes-cache: convert to struct object_idbrian m. carlson, May 6, 2017
  15. 14/53 parse-options-cb: convert to struct object_idbrian m. carlson, May 6, 2017
  16. 15/53 reflog_expire: convert to struct object_idbrian m. carlson, May 6, 2017
  17. 16/53 builtin/verify-commit: convert to struct object_idbrian m. carlson, May 6, 2017
  18. 17/53 tag: convert parse_tag_buffer to struct object_idbrian m. carlson, May 6, 2017
  19. 18/53 http-push: convert some static functions to struct object_idbrian m. carlson, May 6, 2017
  20. 19/53 notes-utils: convert internals to struct object_idbrian m. carlson, May 6, 2017
  21. 22/53 sequencer: convert some functions to struct object_idbrian m. carlson, May 6, 2017
  22. 20/53 revision: convert prepare_show_merge to struct object_idbrian m. carlson, May 6, 2017
  23. 23/53 builtin/tag: convert to struct object_idbrian m. carlson, May 6, 2017
  24. 24/53 Convert remaining callers of lookup_commit_reference* to object_idbrian m. carlson, May 6, 2017
  25. 26/53 pack: convert struct pack_idx_entry to struct object_idbrian m. carlson, May 6, 2017
  26. 25/53 Convert lookup_commit* to struct object_idbrian m. carlson, May 6, 2017
  27. 27/53 builtin/unpack-objects: convert to struct object_idbrian m. carlson, May 6, 2017
  28. 28/53 Convert remaining callers of lookup_blob to object_idbrian m. carlson, May 6, 2017
  29. 21/53 shallow: convert shallow registration functions to object_idbrian m. carlson, May 6, 2017
  30. 31/53 builtin/reflog: convert tree_is_complete to take struct object_idbrian m. carlson, May 6, 2017
  31. 30/53 tree: convert read_tree_1 to use struct object_id internallybrian m. carlson, May 6, 2017
  32. 29/53 Convert lookup_blob to struct object_idbrian m. carlson, May 6, 2017
  33. 33/53 log-tree: convert to struct object_idbrian m. carlson, May 6, 2017
  34. 32/53 Convert lookup_tree to struct object_idbrian m. carlson, May 6, 2017
  35. 34/53 Convert lookup_tag to struct object_idbrian m. carlson, May 6, 2017
  36. 36/53 Convert struct ref_array_item to struct object_idbrian m. carlson, May 6, 2017
  37. 35/53 Convert the verify_pack callback to struct object_idbrian m. carlson, May 6, 2017
  38. 37/53 ref-filter: convert some static functions to struct object_idbrian m. carlson, May 6, 2017
  39. 38/53 refs: convert struct ref_update to use struct object_idbrian m. carlson, May 6, 2017
  40. 39/53 refs/files-backend: convert many internals to struct object_idbrian m. carlson, May 6, 2017
  41. 41/53 revision: rename add_pending_sha1 to add_pending_oidbrian m. carlson, May 6, 2017
  42. 42/53 revision: convert remaining parse_object callers to object_idbrian m. carlson, May 6, 2017
  43. 40/53 http-push: convert process_ls_object and descendants to object_idbrian m. carlson, May 6, 2017
  44. 43/53 upload-pack: convert remaining parse_object callers to object_idbrian m. carlson, May 6, 2017
  45. 44/53 sha1_name: convert internals of peel_onion to object_idbrian m. carlson, May 6, 2017
  46. 45/53 builtin/read-tree: convert to struct object_idbrian m. carlson, May 6, 2017
  47. 47/53 sequencer: convert fast_forward_to to struct object_idbrian m. carlson, May 6, 2017
  48. 48/53 merge: convert checkout_fast_forward to struct object_idbrian m. carlson, May 6, 2017
  49. 49/53 builtin/ls-tree: convert to struct object_idbrian m. carlson, May 6, 2017
  50. 51/53 sequencer: convert do_recursive_merge to struct object_idbrian m. carlson, May 6, 2017
  51. 52/53 tree: convert parse_tree_indirect to struct object_idbrian m. carlson, May 6, 2017
  52. 46/53 builtin/ls-files: convert overlay_tree_on_cache to object_idbrian m. carlson, May 6, 2017
  53. 50/53 diff-lib: convert do_diff_cache to struct object_idbrian m. carlson, May 6, 2017
  54. 53/53 object: convert parse_object* to take struct object_idbrian m. carlson, May 6, 2017
  55. Jonathan TanMay 8, 2017
  56. Brandon WilliamsMay 9, 2017

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.