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

[PATCH v2 01/13] hash: add an algo member to struct object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Apr 26, 2021, 01:02 UTC
Message-ID
<20210426010301.1093562-2-sandals@crustytoothpaste.net>
In-Reply-To
<20210426010301.1093562-1-sandals@crustytoothpaste.net>

Now that we're working with multiple hash algorithms in the same repo, it's best if we label each object ID with its algorithm so we can determine how to format a given object ID. Add a member called algo to struct object_id.

Performance testing on object ID-heavy workloads doesn't reveal a clear change in performance. Out of performance tests t0001 and t1450, there are slight variations in performance both up and down, but all measurements are within the margin of error.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 hash.h | 1 +
 1 file changed, 1 insertion(+)
diff --git a/hash.h b/hash.h
index 3fb0c3d400..dafdcb3335 100644
--- a/hash.h
+++ b/hash.h
@@ -181,6 +181,7 @@ static inline int hash_algo_by_ptr(const struct git_hash_algo *p)
 
 struct object_id {
 	unsigned char hash[GIT_MAX_RAWSZ];
+	int algo;
 };
 
 #define the_hash_algo the_repository->hash_algo
Previous: brian m. carlsonNext: Matheus Tavares Bernardino
Message 2 of 16 in “SHA-256 / SHA-1 interop, part 1”
  1. 00/13 SHA-256 / SHA-1 interop, part 1brian m. carlson, Apr 26, 2021
  2. 01/13 hash: add an algo member to struct object_idbrian m. carlson, Apr 26, 2021
  3. Matheus Tavares BernardinoMay 7, 2021
  4. brian m. carlsonMay 7, 2021
  5. 03/13 http-push: set algorithm when reading object IDbrian m. carlson, Apr 26, 2021
  6. 06/13 builtin/pack-redundant: avoid casting buffers to struct object_idbrian m. carlson, Apr 26, 2021
  7. 02/13 Always use oidread to read into struct object_idbrian m. carlson, Apr 26, 2021
  8. 07/13 hash: set, copy, and use algo field in struct object_idbrian m. carlson, Apr 26, 2021
  9. 10/13 commit-graph: don't store file hashes as struct object_idbrian m. carlson, Apr 26, 2021
  10. 11/13 builtin/pack-objects: avoid using struct object_id for pack hashbrian m. carlson, Apr 26, 2021
  11. 13/13 hex: print objects using the hash algorithm memberbrian m. carlson, Apr 26, 2021
  12. 04/13 hash: add a function to finalize object IDsbrian m. carlson, Apr 26, 2021
  13. 05/13 Use the final_oid_fn to finalize hashing of object IDsbrian m. carlson, Apr 26, 2021
  14. 08/13 hash: provide per-algorithm null OIDsbrian m. carlson, Apr 26, 2021
  15. 09/13 builtin/show-index: set the algorithm for object IDsbrian m. carlson, Apr 26, 2021
  16. 12/13 hex: default to the_hash_algo on zero algorithm valuebrian m. carlson, Apr 26, 2021

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.