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

[PATCH 18/53] http-push: convert some static functions to struct object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Apr 23, 2017, 21:34 UTC
Message-ID
<20170423213453.253425-19-sandals@crustytoothpaste.net>
In-Reply-To
<20170423213453.253425-1-sandals@crustytoothpaste.net>

Among the functions converted is a caller of lookup_commit_or_die, which we will convert later on.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 http-push.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/http-push.c b/http-push.c
index f0e3108f7..f3dd0a560 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1536,7 +1536,7 @@ static int remote_exists(const char *path)
 	return ret;
 }
 
-static void fetch_symref(const char *path, char **symref, unsigned char *sha1)
+static void fetch_symref(const char *path, char **symref, struct object_id *oid)
 {
 	char *url = xstrfmt("%s%s", repo->url, path);
 	struct strbuf buffer = STRBUF_INIT;
@@ -1549,7 +1549,7 @@ static void fetch_symref(const char *path, char **symref, unsigned char *sha1)
 
 	free(*symref);
 	*symref = NULL;
-	hashclr(sha1);
+	oidclr(oid);
 
 	if (buffer.len == 0)
 		return;
@@ -1561,15 +1561,15 @@ static void fetch_symref(const char *path, char **symref, unsigned char *sha1)
 	if (skip_prefix(buffer.buf, "ref: ", &name)) {
 		*symref = xmemdupz(name, buffer.len - (name - buffer.buf));
 	} else {
-		get_sha1_hex(buffer.buf, sha1);
+		get_oid_hex(buffer.buf, oid);
 	}
 
 	strbuf_release(&buffer);
 }
 
-static int verify_merge_base(unsigned char *head_sha1, struct ref *remote)
+static int verify_merge_base(struct object_id *head_oid, struct ref *remote)
 {
-	struct commit *head = lookup_commit_or_die(head_sha1, "HEAD");
+	struct commit *head = lookup_commit_or_die(head_oid->hash, "HEAD");
 	struct commit *branch = lookup_commit_or_die(remote->old_oid.hash, remote->name);
 
 	return in_merge_bases(branch, head);
@@ -1579,7 +1579,7 @@ static int delete_remote_branch(const char *pattern, int force)
 {
 	struct ref *refs = remote_refs;
 	struct ref *remote_ref = NULL;
-	unsigned char head_sha1[20];
+	struct object_id head_oid;
 	char *symref = NULL;
 	int match;
 	int patlen = strlen(pattern);
@@ -1610,7 +1610,7 @@ static int delete_remote_branch(const char *pattern, int force)
 	 * Remote HEAD must be a symref (not exactly foolproof; a remote
 	 * symlink to a symref will look like a symref)
 	 */
-	fetch_symref("HEAD", &symref, head_sha1);
+	fetch_symref("HEAD", &symref, &head_oid);
 	if (!symref)
 		return error("Remote HEAD is not a symref");
 
@@ -1619,7 +1619,7 @@ static int delete_remote_branch(const char *pattern, int force)
 		if (!strcmp(remote_ref->name, symref))
 			return error("Remote branch %s is the current HEAD",
 				     remote_ref->name);
-		fetch_symref(symref, &symref, head_sha1);
+		fetch_symref(symref, &symref, &head_oid);
 	}
 
 	/* Run extra sanity checks if delete is not forced */
@@ -1627,10 +1627,10 @@ static int delete_remote_branch(const char *pattern, int force)
 		/* Remote HEAD must resolve to a known object */
 		if (symref)
 			return error("Remote HEAD symrefs too deep");
-		if (is_null_sha1(head_sha1))
+		if (is_null_oid(&head_oid))
 			return error("Unable to resolve remote HEAD");
-		if (!has_sha1_file(head_sha1))
-			return error("Remote HEAD resolves to object %s\nwhich does not exist locally, perhaps you need to fetch?", sha1_to_hex(head_sha1));
+		if (!has_object_file(&head_oid))
+			return error("Remote HEAD resolves to object %s\nwhich does not exist locally, perhaps you need to fetch?", oid_to_hex(&head_oid));
 
 		/* Remote branch must resolve to a known object */
 		if (is_null_oid(&remote_ref->old_oid))
@@ -1640,7 +1640,7 @@ static int delete_remote_branch(const char *pattern, int force)
 			return error("Remote branch %s resolves to object %s\nwhich does not exist locally, perhaps you need to fetch?", remote_ref->name, oid_to_hex(&remote_ref->old_oid));
 
 		/* Remote branch must be an ancestor of remote HEAD */
-		if (!verify_merge_base(head_sha1, remote_ref)) {
+		if (!verify_merge_base(&head_oid, remote_ref)) {
 			return error("The branch '%s' is not an ancestor "
 				     "of your current HEAD.\n"
 				     "If you are sure you want to delete it,"
Previous: brian m. carlsonNext: brian m. carlson
Message 23 of 67 in “object_id part 8”
  1. 00/53 object_id part 8brian m. carlson, Apr 23, 2017
  2. 02/53 Clean up outstanding object_id transforms.brian m. carlson, Apr 23, 2017
  3. 01/53 fetch-pack: convert to struct object_idbrian m. carlson, Apr 23, 2017
  4. 03/53 Convert struct cache_tree to use struct object_idbrian m. carlson, Apr 23, 2017
  5. 04/53 builtin/name-rev: convert to struct object_idbrian m. carlson, Apr 23, 2017
  6. 05/53 builtin/prune: convert to struct object_idbrian m. carlson, Apr 23, 2017
  7. 06/53 bundle: convert to struct object_idbrian m. carlson, Apr 23, 2017
  8. 08/53 builtin/blame: convert static function to struct object_idbrian m. carlson, Apr 23, 2017
  9. 07/53 branch: convert to struct object_idbrian m. carlson, Apr 23, 2017
  10. 10/53 fast-import: convert internal structs to struct object_idbrian m. carlson, Apr 23, 2017
  11. 09/53 builtin/rev-parse: convert to struct object_idbrian m. carlson, Apr 23, 2017
  12. 12/53 submodule: convert merge_submodule to use struct object_idbrian m. carlson, Apr 23, 2017
  13. 13/53 notes-cache: convert to struct object_idbrian m. carlson, Apr 23, 2017
  14. Stefan BellerApr 24, 2017
  15. 11/53 fast-import: convert to struct object_idbrian m. carlson, Apr 23, 2017
  16. Stefan BellerApr 24, 2017
  17. brian m. carlsonApr 24, 2017
  18. 14/53 parse-options-cb: convert to struct object_idbrian m. carlson, Apr 23, 2017
  19. 17/53 tag: convert parse_tag_buffer to struct object_idbrian m. carlson, Apr 23, 2017
  20. 15/53 reflog_expire: convert to struct object_idbrian m. carlson, Apr 23, 2017
  21. 16/53 builtin/verify-commit: convert to struct object_idbrian m. carlson, Apr 23, 2017
  22. 19/53 notes-utils: convert internals to struct object_idbrian m. carlson, Apr 23, 2017
  23. 18/53 http-push: convert some static functions to struct object_idbrian m. carlson, Apr 23, 2017
  24. 22/53 sequencer: convert some functions to struct object_idbrian m. carlson, Apr 23, 2017
  25. 20/53 revision: convert prepare_show_merge to struct object_idbrian m. carlson, Apr 23, 2017
  26. 21/53 shallow: convert shallow registration functions to object_idbrian m. carlson, Apr 23, 2017
  27. 23/53 builtin/tag: convert to struct object_idbrian m. carlson, Apr 23, 2017
  28. 24/53 Convert remaining callers of lookup_commit_reference* to object_idbrian m. carlson, Apr 23, 2017
  29. 26/53 pack: convert struct pack_idx_entry to struct object_idbrian m. carlson, Apr 23, 2017
  30. 25/53 Convert lookup_commit* to struct object_idbrian m. carlson, Apr 23, 2017
  31. 27/53 builtin/unpack-objects: convert to struct object_idbrian m. carlson, Apr 23, 2017
  32. 28/53 Convert remaining callers of lookup_blob to object_idbrian m. carlson, Apr 23, 2017
  33. Stefan BellerApr 24, 2017
  34. 29/53 Convert lookup_blob to struct object_idbrian m. carlson, Apr 23, 2017
  35. 30/53 tree: convert read_tree_1 to use struct object_id internallybrian m. carlson, Apr 23, 2017
  36. 31/53 builtin/reflog: convert tree_is_complete to take struct object_idbrian m. carlson, Apr 23, 2017
  37. 34/53 Convert lookup_tag to struct object_idbrian m. carlson, Apr 23, 2017
  38. 32/53 Convert lookup_tree to struct object_idbrian m. carlson, Apr 23, 2017
  39. 33/53 log-tree: convert to struct object_idbrian m. carlson, Apr 23, 2017
  40. 35/53 Convert the verify_pack callback to struct object_idbrian m. carlson, Apr 23, 2017
  41. Stefan BellerApr 26, 2017
  42. Jeff KingApr 27, 2017
  43. brian m. carlsonApr 28, 2017
  44. Jeff KingApr 28, 2017
  45. 36/53 Convert struct ref_array_item to struct object_idbrian m. carlson, Apr 23, 2017
  46. 37/53 ref-filter: convert some static functions to struct object_idbrian m. carlson, Apr 23, 2017
  47. 38/53 refs: convert struct ref_update to use struct object_idbrian m. carlson, Apr 23, 2017
  48. Michael HaggertyApr 27, 2017
  49. 39/53 refs/files-backend: convert many internals to struct object_idbrian m. carlson, Apr 23, 2017
  50. Michael HaggertyApr 27, 2017
  51. 40/53 http-push: convert process_ls_object and descendants to object_idbrian m. carlson, Apr 23, 2017
  52. 41/53 revision: rename add_pending_sha1 to add_pending_oidbrian m. carlson, Apr 23, 2017
  53. 43/53 upload-pack: convert remaining parse_object callers to object_idbrian m. carlson, Apr 23, 2017
  54. 46/53 builtin/ls-files: convert overlay_tree_on_cache to object_idbrian m. carlson, Apr 23, 2017
  55. 45/53 builtin/read-tree: convert to struct object_idbrian m. carlson, Apr 23, 2017
  56. 47/53 sequencer: convert fast_forward_to to struct object_idbrian m. carlson, Apr 23, 2017
  57. 51/53 sequencer: convert do_recursive_merge to struct object_idbrian m. carlson, Apr 23, 2017
  58. 50/53 diff-lib: convert do_diff_cache to struct object_idbrian m. carlson, Apr 23, 2017
  59. 48/53 merge: convert checkout_fast_forward to struct object_idbrian m. carlson, Apr 23, 2017
  60. 49/53 builtin/ls-tree: convert to struct object_idbrian m. carlson, Apr 23, 2017
  61. 44/53 sha1_name: convert internals of peel_onion to object_idbrian m. carlson, Apr 23, 2017
  62. 42/53 revision: convert remaining parse_object callers to object_idbrian m. carlson, Apr 23, 2017
  63. 52/53 tree: convert parse_tree_indirect to struct object_idbrian m. carlson, Apr 23, 2017
  64. 53/53 object: convert parse_object* to take struct object_idbrian m. carlson, Apr 23, 2017
  65. Stefan BellerApr 27, 2017
  66. Junio C HamanoApr 24, 2017
  67. Brandon WilliamsApr 24, 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.