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

[PATCH v2 06/16] sha1-name: use the_hash_algo when parsing object names

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Jul 16, 2018, 01:27 UTC
Message-ID
<20180716012808.961328-7-sandals@crustytoothpaste.net>
In-Reply-To
<20180716012808.961328-1-sandals@crustytoothpaste.net>
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 sha1-name.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/sha1-name.c b/sha1-name.c
index 60d9ef3c7e..ba6a5a689f 100644
--- a/sha1-name.c
+++ b/sha1-name.c
@@ -310,7 +310,7 @@ static int init_object_disambiguation(const char *name, int len,
 {
 	int i;
 
-	if (len < MINIMUM_ABBREV || len > GIT_SHA1_HEXSZ)
+	if (len < MINIMUM_ABBREV || len > the_hash_algo->hexsz)
 		return -1;
 
 	memset(ds, 0, sizeof(*ds));
@@ -576,6 +576,8 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len)
 	struct disambiguate_state ds;
 	struct min_abbrev_data mad;
 	struct object_id oid_ret;
+	const unsigned hexsz = the_hash_algo->hexsz;
+
 	if (len < 0) {
 		unsigned long count = approximate_object_count();
 		/*
@@ -599,8 +601,8 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len)
 	}
 
 	oid_to_hex_r(hex, oid);
-	if (len == GIT_SHA1_HEXSZ || !len)
-		return GIT_SHA1_HEXSZ;
+	if (len == hexsz || !len)
+		return hexsz;
 
 	mad.init_len = len;
 	mad.cur_len = len;
@@ -706,7 +708,7 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid,
 	int refs_found = 0;
 	int at, reflog_len, nth_prior = 0;
 
-	if (len == GIT_SHA1_HEXSZ && !get_oid_hex(str, oid)) {
+	if (len == the_hash_algo->hexsz && !get_oid_hex(str, oid)) {
 		if (warn_ambiguous_refs && warn_on_object_refname_ambiguity) {
 			refs_found = dwim_ref(str, len, &tmp_oid, &real_ref);
 			if (refs_found > 0) {
@@ -750,7 +752,7 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid,
 		int detached;
 
 		if (interpret_nth_prior_checkout(str, len, &buf) > 0) {
-			detached = (buf.len == GIT_SHA1_HEXSZ && !get_oid_hex(buf.buf, oid));
+			detached = (buf.len == the_hash_algo->hexsz && !get_oid_hex(buf.buf, oid));
 			strbuf_release(&buf);
 			if (detached)
 				return 0;
Previous: brian m. carlsonNext: brian m. carlson
Message 10 of 20 in “object_id part 14”
  1. 00/16 object_id part 14brian m. carlson, Jul 16, 2018
  2. 01/16 cache: update object ID functions for the_hash_algobrian m. carlson, Jul 16, 2018
  3. 02/16 tree-walk: replace hard-coded constants with the_hash_algobrian m. carlson, Jul 16, 2018
  4. 03/16 hex: switch to using the_hash_algobrian m. carlson, Jul 16, 2018
  5. 05/16 strbuf: allocate space with GIT_MAX_HEXSZbrian m. carlson, Jul 16, 2018
  6. 04/16 commit: express tree entry constants in terms of the_hash_algobrian m. carlson, Jul 16, 2018
  7. 07/16 refs/files-backend: use the_hash_algo for writing refsbrian m. carlson, Jul 16, 2018
  8. 08/16 builtin/update-index: convert to using the_hash_algobrian m. carlson, Jul 16, 2018
  9. 09/16 builtin/update-index: simplify parsing of cacheinfobrian m. carlson, Jul 16, 2018
  10. 06/16 sha1-name: use the_hash_algo when parsing object namesbrian m. carlson, Jul 16, 2018
  11. 10/16 builtin/fmt-merge-msg: make hash independentbrian m. carlson, Jul 16, 2018
  12. 11/16 builtin/merge: switch to use the_hash_algobrian m. carlson, Jul 16, 2018
  13. 12/16 builtin/merge-recursive: make hash independentbrian m. carlson, Jul 16, 2018
  14. 13/16 diff: switch GIT_SHA1_HEXSZ to use the_hash_algobrian m. carlson, Jul 16, 2018
  15. 14/16 log-tree: switch GIT_SHA1_HEXSZ to the_hash_algo->hexszbrian m. carlson, Jul 16, 2018
  16. 15/16 sha1-file: convert constants to uses of the_hash_algobrian m. carlson, Jul 16, 2018
  17. 16/16 pretty: switch hard-coded constants to the_hash_algobrian m. carlson, Jul 16, 2018
  18. Derrick StoleeJul 16, 2018
  19. Taylor BlauJul 16, 2018
  20. Stefan BellerJul 16, 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.