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

[PATCH v2 05/15] builtin/fetch-pack: remove constants with parse_oid_hex

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Oct 15, 2018, 00:01 UTC
Message-ID
<20181015000202.951965-6-sandals@crustytoothpaste.net>
In-Reply-To
<20181015000202.951965-1-sandals@crustytoothpaste.net>

Instead of using GIT_SHA1_HEXSZ, use parse_oid_hex to compute a pointer and use that in comparisons. This is both simpler to read and works independent of the hash length. Update references to SHA-1 in the same function to refer to object IDs instead.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 builtin/fetch-pack.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index 1a1bc63566..63e69a5801 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -16,13 +16,14 @@ static void add_sought_entry(struct ref ***sought, int *nr, int *alloc,
 {
 	struct ref *ref;
 	struct object_id oid;
+	const char *p;
 
-	if (!get_oid_hex(name, &oid)) {
-		if (name[GIT_SHA1_HEXSZ] == ' ') {
-			/* <sha1> <ref>, find refname */
-			name += GIT_SHA1_HEXSZ + 1;
-		} else if (name[GIT_SHA1_HEXSZ] == '\0') {
-			; /* <sha1>, leave sha1 as name */
+	if (!parse_oid_hex(name, &oid, &p)) {
+		if (*p == ' ') {
+			/* <oid> <ref>, find refname */
+			name = p + 1;
+		} else if (*p == '\0') {
+			; /* <oid>, leave oid as name */
 		} else {
 			/* <ref>, clear cruft from oid */
 			oidclr(&oid);
Previous: brian m. carlsonNext: brian m. carlson
Message 6 of 17 in “Hash function transition part 15”
  1. 00/15 Hash function transition part 15brian m. carlson, Oct 15, 2018
  2. 01/15 object_id.cocci: match only expressions of type 'struct object_id'brian m. carlson, Oct 15, 2018
  3. 02/15 pack-bitmap-write: use GIT_MAX_RAWSZ for allocationbrian m. carlson, Oct 15, 2018
  4. 03/15 builtin/repack: replace hard-coded constantsbrian m. carlson, Oct 15, 2018
  5. 04/15 builtin/mktree: remove hard-coded constantbrian m. carlson, Oct 15, 2018
  6. 05/15 builtin/fetch-pack: remove constants with parse_oid_hexbrian m. carlson, Oct 15, 2018
  7. 06/15 pack-revindex: express constants in terms of the_hash_algobrian m. carlson, Oct 15, 2018
  8. 07/15 packfile: express constants in terms of the_hash_algobrian m. carlson, Oct 15, 2018
  9. 09/15 upload-pack: express constants in terms of the_hash_algobrian m. carlson, Oct 15, 2018
  10. 08/15 refs/packed-backend: express constants using the_hash_algobrian m. carlson, Oct 15, 2018
  11. 10/15 transport: use parse_oid_hex instead of a constantbrian m. carlson, Oct 15, 2018
  12. 11/15 tag: express constant in terms of the_hash_algobrian m. carlson, Oct 15, 2018
  13. 13/15 apply: rename new_sha1_prefix and old_sha1_prefixbrian m. carlson, Oct 15, 2018
  14. 12/15 apply: replace hard-coded constantsbrian m. carlson, Oct 15, 2018
  15. 14/15 submodule: make zero-oid comparison hash function agnosticbrian m. carlson, Oct 15, 2018
  16. 15/15 rerere: convert to use the_hash_algobrian m. carlson, Oct 15, 2018
  17. Junio C HamanoOct 25, 2018

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.