rename "sha1-foo" files
cover rename "sha1-foo" files
We have some source files with filenames such as sha1-lookup.c and sha1-name.c containing a few variable names, comments and the like referencing "sha1". But they are able to handle SHA-256 as well. Here's my attempt at removing "sha1" from the contents and names of these files.
Martin Ågren (4):
object-name.c: rename from sha1-name.c object-file.c: rename from sha1-file.c
sha1-lookup: rename sha1_pos() as hash_pos()
hash-lookup: rename from sha1-lookup
t/oid-info/README | 2 +- sha1-lookup.h => hash-lookup.h | 14 +++++++------- bisect.c | 2 +- builtin/index-pack.c | 2 +- builtin/name-rev.c | 4 ++-- commit-graph.c | 8 ++++---- commit.c | 4 ++-- sha1-lookup.c => hash-lookup.c | 22 +++++++++++----------- list-objects-filter.c | 2 +- midx.c | 2 +- sha1-file.c => object-file.c | 4 ++-- sha1-name.c => object-name.c | 14 +++++++------- oid-array.c | 4 ++-- pack-bitmap-write.c | 4 ++-- packfile.c | 2 +- patch-ids.c | 2 +- rerere.c | 4 ++-- Makefile | 6 +++--- 18 files changed, 51 insertions(+), 51 deletions(-) rename sha1-lookup.h => hash-lookup.h (72%) rename sha1-lookup.c => hash-lookup.c (84%) rename sha1-file.c => object-file.c (99%) rename sha1-name.c => object-name.c (99%)
Signature · 1 line
2.30.0
PATCH 1/4 object-name.c: rename from sha1-name.c
Generalize the last remnants of "sha" and "sha1" in this file and rename it to reflect that we're not just able to handle SHA-1 these days.
--- list-objects-filter.c | 2 +- sha1-name.c => object-name.c | 14 +++++++------- Makefile | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) rename sha1-name.c => object-name.c (99%)
list-objects-filter.c +1 -1
@@ -21,7 +21,7 @@* in the traversal (until we mark it SEEN). This is a way to * let us silently de-dup calls to show() in the caller. This * is subtly different from the "revision.h:SHOWN" and the -* "sha1-name.c:ONELINE_SEEN" bits. And also different from +* "object-name.c:ONELINE_SEEN" bits. And also different from * the non-de-dup usage in pack-bitmap.c */ #define FILTER_SHOWN_BUT_REVISIT (1<<21)
object-name.c renamed from sha1-name.c +7 -7
@@ -85,7 +85,7 @@ static void update_candidates(struct disambiguate_state *ds, const struct object/* otherwise, current can be discarded and candidate is still good */ } -static int match_sha (unsigned ,const unsigned char *,const unsigned char *); +static int match_hash (unsigned ,const unsigned char *,const unsigned char *);static void find_short_object_filename (struct disambiguate_state *ds) {
@@ -102,7 +102,7 @@ static void find_short_object_filename(struct disambiguate_state *ds)while (!ds->ambiguous && pos < loose_objects->nr) {const struct object_id *oid; oid = loose_objects->oid + pos; -if (!match_sha (ds->len, ds->bin_pfx.hash, oid->hash)) +if (!match_hash (ds->len, ds->bin_pfx.hash, oid->hash))break ;update_candidates (ds, oid); pos++;
@@ -110,7 +110,7 @@ static void find_short_object_filename(struct disambiguate_state *ds) } } -static int match_sha (unsigned len,const unsigned char *a,const unsigned char *b) +static int match_hash (unsigned len,const unsigned char *a,const unsigned char *b) { do { if (*a != *b)
@@ -145,7 +145,7 @@ static void unique_in_midx(struct multi_pack_index *m,for (i = first; i < num && !ds->ambiguous; i++) {struct object_id oid; current =nth_midxed_object_oid (&oid, m, i); -if (!match_sha (ds->len, ds->bin_pfx.hash, current->hash)) +if (!match_hash (ds->len, ds->bin_pfx.hash, current->hash))break ;update_candidates (ds, current); }
@@ -173,7 +173,7 @@ static void unique_in_pack(struct packed_git *p,for (i = first; i < num && !ds->ambiguous; i++) {struct object_id oid;nth_packed_object_id (&oid, p, i); -if (!match_sha (ds->len, ds->bin_pfx.hash, oid.hash)) +if (!match_hash (ds->len, ds->bin_pfx.hash, oid.hash))break ;update_candidates (ds, &oid); }
@@ -1811,7 +1811,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo,if (!ret)return ret;/* -* sha1:path --> object name of path in ent sha1 +* tree:path --> object name of path in tree * :path -> object name of absolute path in index * :./path -> object name of path relative to cwd in index * :[0-3]:path -> object name of path in index at stage
@@ -1949,6 +1949,6 @@ enum get_oid_result get_oid_with_context(struct repository *repo, struct object_context *oc) {if (flags &GET_OID_FOLLOW_SYMLINKS && flags &GET_OID_ONLY_TO_DIE ) -BUG ("incompatible flags for get_sha1_with_context" ); +BUG ("incompatible flags for get_oid_with_context" );return get_oid_with_context_1 (repo, str, flags,NULL , oid, oc); }
Makefile +1 -1
@@ -937,6 +937,7 @@ LIB_OBJS += notes-cache.o LIB_OBJS += notes-merge.o LIB_OBJS += notes-utils.o LIB_OBJS += notes.o +LIB_OBJS += object-name.o LIB_OBJS += object.o LIB_OBJS += oid-array.o LIB_OBJS += oidmap.o
@@ -995,7 +996,6 @@ LIB_OBJS += server-info.o LIB_OBJS += setup.o LIB_OBJS += sha1-file.o LIB_OBJS += sha1-lookup.o -LIB_OBJS += sha1-name.o LIB_OBJS += shallow.o LIB_OBJS += sideband.o LIB_OBJS += sigchain.o
Signature · 1 line
2.30.0
Re: [PATCH 1/4] object-name.c: rename from sha1-name.c
Quoted 10 lines · Martin Ågren
Generalize the last remnants of "sha" and "sha1" in this file and rename it to reflect that we're not just able to handle SHA-1 these days.
Signed-off-by Martin Ågren <[email protected]>--- list-objects-filter.c | 2 +- sha1-name.c => object-name.c | 14 +++++++------- Makefile | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) rename sha1-name.c => object-name.c (99%)
I was tempted to recommend making the content changes to sha1-name.c in a preperatory patch then doing a patch that preforms an exact rename (along with edits to Makefile and list-objects-filter.c).
However, I talked myself out of it while writing this response. Having an exact rename won't materially change how "git log --follow" or "git blame" behave.
Thanks,
-Stolee
PATCH 2/4 object-file.c: rename from sha1-file.c
In reply to Martin ÅgrenDrop the last remnant of "sha1" in this file and rename it to reflect that we're not just able to handle SHA-1 these days.
--- t/oid-info/README | 2 +- builtin/index-pack.c | 2 +- sha1-file.c => object-file.c | 2 +- Makefile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename sha1-file.c => object-file.c (99%)
t/oid-info/README +1 -1
@@ -5,7 +5,7 @@ starting with `#` are ignored. The key and value are separated by whitespace (specifically, those whitespace in the default `$IFS`). The key consists only of shell identifier characters, and the value consists of a hash algorithm, colon, and value. The hash algorithm also consists only of shell identifier -characters; it should match the value in sha1-file.c. +characters; it should match the value in object-file.c. For example, the following lines map the key "rawsz" to "20" if SHA-1 is in use and to "32" if SHA-256 is in use:
builtin/index-pack.c +1 -1
@@ -1641,7 +1641,7 @@ static void read_idx_option(struct pack_idx_option *opts, const char *pack_name)/* * Get rid of the idx file as we do not need it anymore. * NEEDSWORK: extract this bit from free_pack_by_name() in -* sha1-file.c, perhaps? It shouldn't matter very much as we +* object-file.c, perhaps? It shouldn't matter very much as we * know we haven't installed this pack (hence we never have * read anything from it). */
object-file.c renamed from sha1-file.c +1 -1
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 * -* This handles basic git sha1 object files - packing, unpacking, +* This handles basic git object files - packing, unpacking, * creation etc. */ #include "cache.h"
Makefile +1 -1
@@ -937,6 +937,7 @@ LIB_OBJS += notes-cache.o LIB_OBJS += notes-merge.o LIB_OBJS += notes-utils.o LIB_OBJS += notes.o +LIB_OBJS += object-file.o LIB_OBJS += object-name.o LIB_OBJS += object.o LIB_OBJS += oid-array.o
@@ -994,7 +995,6 @@ LIB_OBJS += sequencer.o LIB_OBJS += serve.o LIB_OBJS += server-info.o LIB_OBJS += setup.o -LIB_OBJS += sha1-file.o LIB_OBJS += sha1-lookup.o LIB_OBJS += shallow.o LIB_OBJS += sideband.o
Signature · 1 line
2.30.0
PATCH 3/4 sha1-lookup: rename `sha1_pos()` as `hash_pos()`
In reply to Martin ÅgrenRename this function to reflect that we're not just able to handle SHA-1 these days. There are a few instances of "sha1" left in sha1-lookup.[ch] after this, but those will be addressed in the next commit.
--- sha1-lookup.h | 6 +++--- builtin/name-rev.c | 2 +- commit-graph.c | 6 +++--- commit.c | 2 +- oid-array.c | 2 +- pack-bitmap-write.c | 2 +- rerere.c | 2 +- sha1-lookup.c | 8 ++++---- 8 files changed, 15 insertions(+), 15 deletions(-)
sha1-lookup.h +3 -3
@@ -1,12 +1,12 @@#ifndef SHA1_LOOKUP_H #define SHA1_LOOKUP_H -typedef const unsigned char *sha1_access_fn (size_t index,void *table); +typedef const unsigned char *hash_access_fn (size_t index,void *table); -int sha1_pos (const unsigned char *sha1, +int hash_pos (const unsigned char *hash,void *table,size_t nr, -sha1_access_fn fn); +hash_access_fn fn);/* * Searches for sha1 in table, using the given fanout table to determine the
builtin/name-rev.c +1 -1
@@ -408,7 +408,7 @@ static const char *get_exact_ref_match(const struct object *o) tip_table.sorted =1 ; } - found =sha1_pos (o->oid.hash, tip_table.table, tip_table.nr, + found =hash_pos (o->oid.hash, tip_table.table, tip_table.nr, nth_tip_table_ent);if (0 <= found)return tip_table.table[found].refname;
commit-graph.c +3 -3
@@ -1043,7 +1043,7 @@ static int write_graph_chunk_data(struct hashfile *f,if (!parent) edge_value =GRAPH_PARENT_NONE ;else { - edge_value =sha1_pos (parent->item->object.oid.hash, + edge_value =hash_pos (parent->item->object.oid.hash, ctx->commits.list, ctx->commits.nr, commit_to_sha1);
@@ -1074,7 +1074,7 @@ static int write_graph_chunk_data(struct hashfile *f,else if (parent->next) edge_value =GRAPH_EXTRA_EDGES_NEEDED | num_extra_edges;else { - edge_value =sha1_pos (parent->item->object.oid.hash, + edge_value =hash_pos (parent->item->object.oid.hash, ctx->commits.list, ctx->commits.nr, commit_to_sha1);
@@ -1143,7 +1143,7 @@ static int write_graph_chunk_extra_edges(struct hashfile *f,/* Since num_parents > 2, this initializer is safe. */ for (parent = (*list)->parents->next; parent; parent = parent->next) { -int edge_value =sha1_pos (parent->item->object.oid.hash, +int edge_value =hash_pos (parent->item->object.oid.hash, ctx->commits.list, ctx->commits.nr, commit_to_sha1);
commit.c +1 -1
@@ -113,7 +113,7 @@ static const unsigned char *commit_graft_sha1_access(size_t index, void *table)int commit_graft_pos (struct repository *r,const unsigned char *sha1) { -return sha1_pos (sha1, r->parsed_objects->grafts, +return hash_pos (sha1, r->parsed_objects->grafts, r->parsed_objects->grafts_nr, commit_graft_sha1_access); }
oid-array.c +1 -1
@@ -31,7 +31,7 @@ static const unsigned char *sha1_access(size_t index, void *table)int oid_array_lookup (struct oid_array *array,const struct object_id *oid) {oid_array_sort (array); -return sha1_pos (oid->hash, array->oid, array->nr, sha1_access); +return hash_pos (oid->hash, array->oid, array->nr, sha1_access); }void oid_array_clear (struct oid_array *array)
pack-bitmap-write.c +1 -1
@@ -482,7 +482,7 @@ static void write_selected_commits_v1(struct hashfile *f,struct bitmapped_commit *stored = &writer.selected[i];int commit_pos = -sha1_pos (stored->commit->object.oid.hash, index, index_nr, sha1_access); +hash_pos (stored->commit->object.oid.hash, index, index_nr, sha1_access);if (commit_pos <0 )BUG ("trying to write commit not in index" );
rerere.c +1 -1
@@ -147,7 +147,7 @@ static struct rerere_dir *find_rerere_dir(const char *hex)if (get_sha1_hex (hex, hash))return NULL ;/* BUG */ - pos =sha1_pos (hash, rerere_dir, rerere_dir_nr, rerere_dir_hash); + pos =hash_pos (hash, rerere_dir, rerere_dir_nr, rerere_dir_hash);if (pos <0 ) { rr_dir =xmalloc (sizeof (*rr_dir));hashcpy (rr_dir->hash, hash);
sha1-lookup.c +4 -4
@@ -47,11 +47,11 @@ static uint32_t take2(const unsigned char *sha1)*/ /* * The table should contain "nr" elements. -* The sha1 of element i (between 0 and nr - 1) should be returned +* The hash of element i (between 0 and nr - 1) should be returned * by "fn(i, table)". */ -int sha1_pos (const unsigned char *hash,void *table,size_t nr, -sha1_access_fn fn) +int hash_pos (const unsigned char *hash,void *table,size_t nr, +hash_access_fn fn) {size_t hi = nr;size_t lo =0 ;
@@ -74,7 +74,7 @@ int sha1_pos(const unsigned char *hash, void *table, size_t nr,if (lov != hiv) {/* * At this point miv could be equal -* to hiv (but sha1 could still be higher); +* to hiv (but hash could still be higher); * the invariant of (mi < hi) should be * kept. */
Signature · 1 line
2.30.0
Re: [PATCH 3/4] sha1-lookup: rename `sha1_pos()` as `hash_pos()`
Quoted 3 lines · Martin Ågren
Rename this function to reflect that we're not just able to handle SHA-1 these days. There are a few instances of "sha1" left in sha1-lookup.[ch] after this, but those will be addressed in the next commit.
...
sha1-lookup.c int sha1_pos(const unsigned char *hash, void *table, size_t nr, · line 77
Quoted 6 lines
sha1-lookup.c +1
-1@@ -74,7 +74,7 @@ int sha1_pos(const unsigned char *hash, void *table, size_t nr,if (lov != hiv) {/* * At this point miv could be equal -* to hiv (but sha1 could still be higher); +* to hiv (but hash could still be higher);
Thanks for catching this comment, too!
-Stolee
PATCH 4/4 hash-lookup: rename from sha1-lookup
In reply to Martin ÅgrenChange all remnants of "sha1" in hash-lookup.c and .h and rename them to reflect that we're not just able to handle SHA-1 these days.
--- sha1-lookup.h => hash-lookup.h | 8 ++++---- bisect.c | 2 +- builtin/name-rev.c | 2 +- commit-graph.c | 2 +- commit.c | 2 +- sha1-lookup.c => hash-lookup.c | 14 +++++++------- midx.c | 2 +- object-file.c | 2 +- oid-array.c | 2 +- pack-bitmap-write.c | 2 +- packfile.c | 2 +- patch-ids.c | 2 +- rerere.c | 2 +- Makefile | 2 +- 14 files changed, 23 insertions(+), 23 deletions(-) rename sha1-lookup.h => hash-lookup.h (82%) rename sha1-lookup.c => hash-lookup.c (90%)
hash-lookup.h renamed from sha1-lookup.h +4 -4
@@ -9,12 +9,12 @@ int hash_pos(const unsigned char *hash, hash_access_fn fn);/* -* Searches for sha1 in table, using the given fanout table to determine the +* Searches for hash in table, using the given fanout table to determine the * interval to search, then using binary search. Returns 1 if found, 0 if not. * * Takes the following parameters: * -* - sha1: the hash to search for +* - hash: the hash to search for * - fanout_nbo: a 256-element array of NETWORK-order 32-bit integers; the * integer at position i represents the number of elements in table whose * first byte is less than or equal to i
@@ -23,10 +23,10 @@ int hash_pos(const unsigned char *hash,* GIT_MAX_RAWSZ or greater) * - result: if not NULL, this function stores the element index of the * position found (if the search is successful) or the index of the least -* element that is greater than sha1 (if the search is not successful) +* element that is greater than hash (if the search is not successful) * * This function does not verify the validity of the fanout table. */ -int bsearch_hash (const unsigned char *sha1,const uint32_t *fanout_nbo, +int bsearch_hash (const unsigned char *hash,const uint32_t *fanout_nbo,const unsigned char *table,size_t stride,uint32_t *result);#endif
bisect.c +1 -1
@@ -6,7 +6,7 @@#include "refs.h" #include "list-objects.h" #include "quote.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "run-command.h" #include "log-tree.h" #include "bisect.h"
builtin/name-rev.c +1 -1
@@ -7,7 +7,7 @@#include "refs.h" #include "parse-options.h" #include "prio-queue.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "commit-slab.h" /*
commit-graph.c +1 -1
@@ -7,7 +7,7 @@#include "object.h" #include "refs.h" #include "revision.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "commit-graph.h" #include "object-store.h" #include "alloc.h"
commit.c +1 -1
@@ -14,7 +14,7 @@#include "mergesort.h" #include "commit-slab.h" #include "prio-queue.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "wt-status.h" #include "advice.h" #include "refs.h"
hash-lookup.c renamed from sha1-lookup.c +7 -7
@@ -1,9 +1,9 @@#include "cache.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" -static uint32_t take2 (const unsigned char *sha1) +static uint32_t take2 (const unsigned char *hash) { -return ((sha1[0 ] <<8 ) | sha1[1 ]); +return ((hash[0 ] <<8 ) | hash[1 ]); }/*
@@ -100,17 +100,17 @@ int hash_pos(const unsigned char *hash, void *table, size_t nr,return index_pos_to_insert_pos (lo); } -int bsearch_hash (const unsigned char *sha1,const uint32_t *fanout_nbo, +int bsearch_hash (const unsigned char *hash,const uint32_t *fanout_nbo,const unsigned char *table,size_t stride,uint32_t *result) {uint32_t hi, lo; - hi =ntohl (fanout_nbo[*sha1]); - lo = ((*sha1 ==0x0 ) ?0 :ntohl (fanout_nbo[*sha1 -1 ])); + hi =ntohl (fanout_nbo[*hash]); + lo = ((*hash ==0x0 ) ?0 :ntohl (fanout_nbo[*hash -1 ]));while (lo < hi) {unsigned mi = lo + (hi - lo) /2 ; -int cmp =hashcmp (table + mi * stride, sha1); +int cmp =hashcmp (table + mi * stride, hash);if (!cmp) {if (result)
midx.c +1 -1
@@ -5,7 +5,7 @@#include "lockfile.h" #include "packfile.h" #include "object-store.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "midx.h" #include "progress.h" #include "trace2.h"
object-file.c +1 -1
@@ -20,7 +20,7 @@#include "tree-walk.h" #include "refs.h" #include "pack-revindex.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "bulk-checkin.h" #include "repository.h" #include "replace-object.h"
oid-array.c +1 -1
@@ -1,6 +1,6 @@#include "cache.h" #include "oid-array.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" void oid_array_append (struct oid_array *array,const struct object_id *oid) {
pack-bitmap-write.c +1 -1
@@ -9,7 +9,7 @@#include "pack-revindex.h" #include "pack.h" #include "pack-bitmap.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "pack-objects.h" #include "commit-reach.h"
packfile.c +1 -1
@@ -7,7 +7,7 @@#include "packfile.h" #include "delta.h" #include "streaming.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "commit.h" #include "object.h" #include "tag.h"
patch-ids.c +1 -1
@@ -1,7 +1,7 @@#include "cache.h" #include "diff.h" #include "commit.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "patch-ids.h" static int patch_id_defined (struct commit *commit)
rerere.c +1 -1
@@ -10,7 +10,7 @@#include "attr.h" #include "pathspec.h" #include "object-store.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #define RESOLVED 0#define PUNTED 1
Makefile +1 -1
@@ -901,6 +901,7 @@ LIB_OBJS += gettext.o LIB_OBJS += gpg-interface.o LIB_OBJS += graph.o LIB_OBJS += grep.o +LIB_OBJS += hash-lookup.o LIB_OBJS += hashmap.o LIB_OBJS += help.o LIB_OBJS += hex.o
@@ -995,7 +996,6 @@ LIB_OBJS += sequencer.o LIB_OBJS += serve.o LIB_OBJS += server-info.o LIB_OBJS += setup.o -LIB_OBJS += sha1-lookup.o LIB_OBJS += shallow.o LIB_OBJS += sideband.o LIB_OBJS += sigchain.o
Signature · 1 line
2.30.0
Quoted 5 lines · Martin Ågren
We have some source files with filenames such as
sha1-lookup.candsha1-name.ccontaining a few variable names, comments and the like referencing "sha1". But they are able to handle SHA-256 as well. Here's my attempt at removing "sha1" from the contents and names of these files.
I think this is a good effort. Timing is good after the v2.30.0 release. As long as this doesn't conflict drastically with things in flight, I think this change should "jump the line" and merge with priority to avoid future conflicts.
It _has_ been bothering me that it was still sha1-file.c.
Oh, and I remembered the one semi-legitimate case to try for exact renames whenever possible: "git log --follow" will download fewer blobs in a blobless partial clone (--filter=blob:none). Of course, this only works if the rule is always followed and is not really a justification for doubling the number of your patches.
It does make me think that it is worth checking if "git log --follow" short-circuits the full rename detection if the path it cares about was found to be an exact rename (so doing a full content-rename check on the other adds and deletes is worthless). Making a note [1] to investigate.
[1] https://github.com/gitgitgadget/git/issues/827
Thanks,
-Stolee
Quoted 8 lines · Derrick Stolee
Quoted 5 lines · Martin Ågren
We have some source files with filenames such as
sha1-lookup.candsha1-name.ccontaining a few variable names, comments and the like referencing "sha1". But they are able to handle SHA-256 as well. Here's my attempt at removing "sha1" from the contents and names of these files.
Quoted 4 lines
I think this is a good effort. Timing is good after the v2.30.0 release. As long as this doesn't conflict drastically with things in flight, I think this change should "jump the line" and merge with priority to avoid future conflicts.
I built this on v2.30.0 and FWIW, it merges cleanly to seen. It could of course be that there are topics on the mailing list that Junio didn't pick up during the rc period so that there are conflicts just waiting to happen.
Quoted 5 lines
Oh, and I remembered the one semi-legitimate case to try for exact renames whenever possible: "git log --follow" will download fewer blobs in a blobless partial clone (--filter=blob:none). Of course, this only works if the rule is always followed and is not really a justification for doubling the number of your patches.
Ok, I see. Well, if you and/or others feel we should aim for a 100% rename, I don't mind splitting the patches. My gut reaction is along your "only works if the rule is always followed", plus I wonder if there are actually Git developers using a blobless partial clone of git.git [other than for testing blobless partial clones].
Martin
Quoted 7 lines · Martin Ågren
Quoted 5 lines · Derrick Stolee
Oh, and I remembered the one semi-legitimate case to try for exact renames whenever possible: "git log --follow" will download fewer blobs in a blobless partial clone (--filter=blob:none). Of course, this only works if the rule is always followed and is not really a justification for doubling the number of your patches.
Quoted 5 lines
Ok, I see. Well, if you and/or others feel we should aim for a 100% rename, I don't mind splitting the patches. My gut reaction is along your "only works if the rule is always followed", plus I wonder if there are actually Git developers using a blobless partial clone of git.git [other than for testing blobless partial clones].
The upside is so small, it is not worth re-rolling your series. I was just thinking out loud to justify my first gut reaction. Even in blobless clones, this is not a huge cost (as long as we didn't also add or remove enormous blobs). This behavior of "filling in the gaps" is expected we use the repository.
Thanks,
-Stolee
Quoted 5 lines · Martin Ågren
We have some source files with filenames such as
sha1-lookup.candsha1-name.ccontaining a few variable names, comments and the like referencing "sha1". But they are able to handle SHA-256 as well. Here's my attempt at removing "sha1" from the contents and names of these files.
I agree that this series looks pretty good, and thanks for sending it. This series ended up being a lot smaller than I expected given the work on the transition, which is a nice surprise and also means it's less likely to conflict with other topics in flight.
Signature · 2 lines
brian m. carlson (he/him or they/them) Houston, Texas, US
Quoted 8 lines · brian m. carlson
Quoted 5 lines · Martin Ågren
We have some source files with filenames such as
sha1-lookup.candsha1-name.ccontaining a few variable names, comments and the like referencing "sha1". But they are able to handle SHA-256 as well. Here's my attempt at removing "sha1" from the contents and names of these files.
Quoted 4 lines
I agree that this series looks pretty good, and thanks for sending it. This series ended up being a lot smaller than I expected given the work on the transition, which is a nice surprise and also means it's less likely to conflict with other topics in flight.
It's a lot smaller than I expected, too -- I looked into one file and figured it would be littered with "sha" instances, but was pleasantly surprised so I continued. Certainly, the only reason this series is smaller than expected is because of all the work that has already been put into the transition. Thank you!
Martin
v2 cover rename "sha1-foo" files
In reply to Martin ÅgrenThanks to Derrick and brian for commenting on v1 [1] of my series for renaming sha1-foo files and generalizing "sha", "sha1" and so on in them. I realized I hadn't renamed the header guard in hash-lookup.h as I renamed the file. That made me realize that I had failed to look for "SHA-1" (capital letters). So this v2 is a bit bigger than v1, but not by too much, I think. The range-diff is below.
[1] https://lore.kernel.org/git/[email protected]/
Martin Ågren (4):
object-name.c: rename from sha1-name.c object-file.c: rename from sha1-file.c
sha1-lookup: rename sha1_pos() as hash_pos()
hash-lookup: rename from sha1-lookup
t/oid-info/README | 2 +- t/t1512-rev-parse-disambiguation.sh | 2 +- sha1-lookup.h => hash-lookup.h | 18 +++++++++--------- bisect.c | 2 +- builtin/index-pack.c | 2 +- builtin/name-rev.c | 4 ++-- commit-graph.c | 8 ++++---- commit.c | 4 ++-- sha1-lookup.c => hash-lookup.c | 22 +++++++++++----------- list-objects-filter.c | 2 +- midx.c | 2 +- sha1-file.c => object-file.c | 10 +++++----- sha1-name.c => object-name.c | 16 ++++++++-------- oid-array.c | 4 ++-- pack-bitmap-write.c | 4 ++-- packfile.c | 2 +- patch-ids.c | 2 +- rerere.c | 4 ++-- Makefile | 6 +++--- 19 files changed, 58 insertions(+), 58 deletions(-) rename sha1-lookup.h => hash-lookup.h (68%) rename sha1-lookup.c => hash-lookup.c (84%) rename sha1-file.c => object-file.c (99%) rename sha1-name.c => object-name.c (98%)
Range-diff against v1:
1: aac3a3c3e2 ! 1: 4d69d448a3 object-name.c: rename from sha1-name.c
@@ Commit message
Generalize the last remnants of "sha" and "sha1" in this file and rename it to reflect that we're not just able to handle SHA-1 these days.
+ We need to update one test to check for an updated error string.
+
+ ## t/t1512-rev-parse-disambiguation.sh ##
+@@ t/t1512-rev-parse-disambiguation.sh: test_expect_success 'blob and tree' ' +
+ test_expect_success 'warn ambiguity when no candidate matches type hint' '
+ test_must_fail git rev-parse --verify 000000000^{commit} 2>actual &&
+- test_i18ngrep "short SHA1 000000000 is ambiguous" actual
++ test_i18ngrep "short object ID 000000000 is ambiguous" actual
+ '
+
+ test_expect_success 'disambiguate tree-ish' '
+
## list-objects-filter.c ##
@@
* in the traversal (until we mark it SEEN). This is a way to
@@ object-name.c: static void unique_in_pack(struct packed_git *p,
break;
update_candidates(ds, &oid);
}
+@@ object-name.c: static enum get_oid_result get_short_oid(struct repository *r,
+ if (!quietly && (status == SHORT_NAME_AMBIGUOUS)) {
+ struct oid_array collect = OID_ARRAY_INIT;
+
+- error(_("short SHA1 %s is ambiguous"), ds.hex_pfx);
++ error(_("short object ID %s is ambiguous"), ds.hex_pfx);
+
+ /*
+ * We may still have ambiguity if we simply saw a series of
@@ object-name.c: static enum get_oid_result get_oid_with_context_1(struct repository *repo,
if (!ret)
return ret;
2: 4243886d8a ! 2: 7ab29b868f object-file.c: rename from sha1-file.c
@@ sha1-file.c => object-file.c
* creation etc.
*/
#include "cache.h"
+@@ object-file.c: static int alt_odb_usable(struct raw_object_store *o,
+ * LF separated. Its base points at a statically allocated buffer that
+ * contains "/the/directory/corresponding/to/.git/objects/...", while
+ * its name points just after the slash at the end of ".git/objects/"
+- * in the example above, and has enough space to hold 40-byte hex
+- * SHA1, an extra slash for the first level indirection, and the
+- * terminating NUL.
++ * in the example above, and has enough space to hold all hex characters
++ * of the object ID, an extra slash for the first level indirection, and
++ * the terminating NUL.
+ */
+ static void read_info_alternates(struct repository *r,
+ const char *relative_base,
## Makefile ##
@@ Makefile: LIB_OBJS += notes-cache.o
3: 8d3b123633 = 3: 91617de0ac sha1-lookup: rename `sha1_pos()` as `hash_pos()`
4: afee010474 ! 4: 9df53353dc hash-lookup: rename from sha1-lookup
@@ Commit message
Signed-off-by: Martin Ågren <[email protected]>
## sha1-lookup.h => hash-lookup.h ##
+@@
+-#ifndef SHA1_LOOKUP_H
+-#define SHA1_LOOKUP_H
++#ifndef HASH_LOOKUP_H
++#define HASH_LOOKUP_H
+
+ typedef const unsigned char *hash_access_fn(size_t index, void *table);
+
@@ hash-lookup.h: int hash_pos(const unsigned char *hash,
hash_access_fn fn);Signature · 1 line
2.30.0
PATCH v2 1/4 object-name.c: rename from sha1-name.c
Generalize the last remnants of "sha" and "sha1" in this file and rename it to reflect that we're not just able to handle SHA-1 these days.
We need to update one test to check for an updated error string.
--- t/t1512-rev-parse-disambiguation.sh | 2 +- list-objects-filter.c | 2 +- sha1-name.c => object-name.c | 16 ++++++++-------- Makefile | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) rename sha1-name.c => object-name.c (98%)
t/t1512-rev-parse-disambiguation.sh +1 -1
@@ -48,7 +48,7 @@ test_expect_success 'blob and tree' ' test_expect_success 'warn ambiguity when no candidate matches type hint' ' test_must_fail git rev-parse --verify 000000000^{commit} 2>actual && - test_i18ngrep "short SHA1 000000000 is ambiguous" actual + test_i18ngrep "short object ID 000000000 is ambiguous" actual ' test_expect_success 'disambiguate tree-ish' '
list-objects-filter.c +1 -1
@@ -21,7 +21,7 @@* in the traversal (until we mark it SEEN). This is a way to * let us silently de-dup calls to show() in the caller. This * is subtly different from the "revision.h:SHOWN" and the -* "sha1-name.c:ONELINE_SEEN" bits. And also different from +* "object-name.c:ONELINE_SEEN" bits. And also different from * the non-de-dup usage in pack-bitmap.c */ #define FILTER_SHOWN_BUT_REVISIT (1<<21)
object-name.c renamed from sha1-name.c +8 -8
@@ -85,7 +85,7 @@ static void update_candidates(struct disambiguate_state *ds, const struct object/* otherwise, current can be discarded and candidate is still good */ } -static int match_sha (unsigned ,const unsigned char *,const unsigned char *); +static int match_hash (unsigned ,const unsigned char *,const unsigned char *);static void find_short_object_filename (struct disambiguate_state *ds) {
@@ -102,7 +102,7 @@ static void find_short_object_filename(struct disambiguate_state *ds)while (!ds->ambiguous && pos < loose_objects->nr) {const struct object_id *oid; oid = loose_objects->oid + pos; -if (!match_sha (ds->len, ds->bin_pfx.hash, oid->hash)) +if (!match_hash (ds->len, ds->bin_pfx.hash, oid->hash))break ;update_candidates (ds, oid); pos++;
@@ -110,7 +110,7 @@ static void find_short_object_filename(struct disambiguate_state *ds) } } -static int match_sha (unsigned len,const unsigned char *a,const unsigned char *b) +static int match_hash (unsigned len,const unsigned char *a,const unsigned char *b) { do { if (*a != *b)
@@ -145,7 +145,7 @@ static void unique_in_midx(struct multi_pack_index *m,for (i = first; i < num && !ds->ambiguous; i++) {struct object_id oid; current =nth_midxed_object_oid (&oid, m, i); -if (!match_sha (ds->len, ds->bin_pfx.hash, current->hash)) +if (!match_hash (ds->len, ds->bin_pfx.hash, current->hash))break ;update_candidates (ds, current); }
@@ -173,7 +173,7 @@ static void unique_in_pack(struct packed_git *p,for (i = first; i < num && !ds->ambiguous; i++) {struct object_id oid;nth_packed_object_id (&oid, p, i); -if (!match_sha (ds->len, ds->bin_pfx.hash, oid.hash)) +if (!match_hash (ds->len, ds->bin_pfx.hash, oid.hash))break ;update_candidates (ds, &oid); }
@@ -483,7 +483,7 @@ static enum get_oid_result get_short_oid(struct repository *r,if (!quietly && (status ==SHORT_NAME_AMBIGUOUS )) {struct oid_array collect =OID_ARRAY_INIT ; -error (_ ("short SHA1 %s is ambiguous" ), ds.hex_pfx); +error (_ ("short object ID %s is ambiguous" ), ds.hex_pfx);/* * We may still have ambiguity if we simply saw a series of
@@ -1811,7 +1811,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo,if (!ret)return ret;/* -* sha1:path --> object name of path in ent sha1 +* tree:path --> object name of path in tree * :path -> object name of absolute path in index * :./path -> object name of path relative to cwd in index * :[0-3]:path -> object name of path in index at stage
@@ -1949,6 +1949,6 @@ enum get_oid_result get_oid_with_context(struct repository *repo, struct object_context *oc) {if (flags &GET_OID_FOLLOW_SYMLINKS && flags &GET_OID_ONLY_TO_DIE ) -BUG ("incompatible flags for get_sha1_with_context" ); +BUG ("incompatible flags for get_oid_with_context" );return get_oid_with_context_1 (repo, str, flags,NULL , oid, oc); }
Makefile +1 -1
@@ -937,6 +937,7 @@ LIB_OBJS += notes-cache.o LIB_OBJS += notes-merge.o LIB_OBJS += notes-utils.o LIB_OBJS += notes.o +LIB_OBJS += object-name.o LIB_OBJS += object.o LIB_OBJS += oid-array.o LIB_OBJS += oidmap.o
@@ -995,7 +996,6 @@ LIB_OBJS += server-info.o LIB_OBJS += setup.o LIB_OBJS += sha1-file.o LIB_OBJS += sha1-lookup.o -LIB_OBJS += sha1-name.o LIB_OBJS += shallow.o LIB_OBJS += sideband.o LIB_OBJS += sigchain.o
Signature · 1 line
2.30.0
PATCH v2 2/4 object-file.c: rename from sha1-file.c
In reply to Martin ÅgrenDrop the last remnant of "sha1" in this file and rename it to reflect that we're not just able to handle SHA-1 these days.
--- t/oid-info/README | 2 +- builtin/index-pack.c | 2 +- sha1-file.c => object-file.c | 8 ++++---- Makefile | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename sha1-file.c => object-file.c (99%)
t/oid-info/README +1 -1
@@ -5,7 +5,7 @@ starting with `#` are ignored. The key and value are separated by whitespace (specifically, those whitespace in the default `$IFS`). The key consists only of shell identifier characters, and the value consists of a hash algorithm, colon, and value. The hash algorithm also consists only of shell identifier -characters; it should match the value in sha1-file.c. +characters; it should match the value in object-file.c. For example, the following lines map the key "rawsz" to "20" if SHA-1 is in use and to "32" if SHA-256 is in use:
builtin/index-pack.c +1 -1
@@ -1641,7 +1641,7 @@ static void read_idx_option(struct pack_idx_option *opts, const char *pack_name)/* * Get rid of the idx file as we do not need it anymore. * NEEDSWORK: extract this bit from free_pack_by_name() in -* sha1-file.c, perhaps? It shouldn't matter very much as we +* object-file.c, perhaps? It shouldn't matter very much as we * know we haven't installed this pack (hence we never have * read anything from it). */
object-file.c renamed from sha1-file.c +4 -4
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 * -* This handles basic git sha1 object files - packing, unpacking, +* This handles basic git object files - packing, unpacking, * creation etc. */ #include "cache.h"
@@ -508,9 +508,9 @@ static int alt_odb_usable(struct raw_object_store *o,* LF separated. Its base points at a statically allocated buffer that * contains "/the/directory/corresponding/to/.git/objects/...", while * its name points just after the slash at the end of ".git/objects/" -* in the example above, and has enough space to hold 40-byte hex -* SHA1, an extra slash for the first level indirection, and the -* terminating NUL. +* in the example above, and has enough space to hold all hex characters +* of the object ID, an extra slash for the first level indirection, and +* the terminating NUL. */ static void read_info_alternates(struct repository *r, const char *relative_base,
Makefile +1 -1
@@ -937,6 +937,7 @@ LIB_OBJS += notes-cache.o LIB_OBJS += notes-merge.o LIB_OBJS += notes-utils.o LIB_OBJS += notes.o +LIB_OBJS += object-file.o LIB_OBJS += object-name.o LIB_OBJS += object.o LIB_OBJS += oid-array.o
@@ -994,7 +995,6 @@ LIB_OBJS += sequencer.o LIB_OBJS += serve.o LIB_OBJS += server-info.o LIB_OBJS += setup.o -LIB_OBJS += sha1-file.o LIB_OBJS += sha1-lookup.o LIB_OBJS += shallow.o LIB_OBJS += sideband.o
Signature · 1 line
2.30.0
PATCH v2 3/4 sha1-lookup: rename `sha1_pos()` as `hash_pos()`
In reply to Martin ÅgrenRename this function to reflect that we're not just able to handle SHA-1 these days. There are a few instances of "sha1" left in sha1-lookup.[ch] after this, but those will be addressed in the next commit.
--- sha1-lookup.h | 6 +++--- builtin/name-rev.c | 2 +- commit-graph.c | 6 +++--- commit.c | 2 +- oid-array.c | 2 +- pack-bitmap-write.c | 2 +- rerere.c | 2 +- sha1-lookup.c | 8 ++++---- 8 files changed, 15 insertions(+), 15 deletions(-)
sha1-lookup.h +3 -3
@@ -1,12 +1,12 @@#ifndef SHA1_LOOKUP_H #define SHA1_LOOKUP_H -typedef const unsigned char *sha1_access_fn (size_t index,void *table); +typedef const unsigned char *hash_access_fn (size_t index,void *table); -int sha1_pos (const unsigned char *sha1, +int hash_pos (const unsigned char *hash,void *table,size_t nr, -sha1_access_fn fn); +hash_access_fn fn);/* * Searches for sha1 in table, using the given fanout table to determine the
builtin/name-rev.c +1 -1
@@ -408,7 +408,7 @@ static const char *get_exact_ref_match(const struct object *o) tip_table.sorted =1 ; } - found =sha1_pos (o->oid.hash, tip_table.table, tip_table.nr, + found =hash_pos (o->oid.hash, tip_table.table, tip_table.nr, nth_tip_table_ent);if (0 <= found)return tip_table.table[found].refname;
commit-graph.c +3 -3
@@ -1043,7 +1043,7 @@ static int write_graph_chunk_data(struct hashfile *f,if (!parent) edge_value =GRAPH_PARENT_NONE ;else { - edge_value =sha1_pos (parent->item->object.oid.hash, + edge_value =hash_pos (parent->item->object.oid.hash, ctx->commits.list, ctx->commits.nr, commit_to_sha1);
@@ -1074,7 +1074,7 @@ static int write_graph_chunk_data(struct hashfile *f,else if (parent->next) edge_value =GRAPH_EXTRA_EDGES_NEEDED | num_extra_edges;else { - edge_value =sha1_pos (parent->item->object.oid.hash, + edge_value =hash_pos (parent->item->object.oid.hash, ctx->commits.list, ctx->commits.nr, commit_to_sha1);
@@ -1143,7 +1143,7 @@ static int write_graph_chunk_extra_edges(struct hashfile *f,/* Since num_parents > 2, this initializer is safe. */ for (parent = (*list)->parents->next; parent; parent = parent->next) { -int edge_value =sha1_pos (parent->item->object.oid.hash, +int edge_value =hash_pos (parent->item->object.oid.hash, ctx->commits.list, ctx->commits.nr, commit_to_sha1);
commit.c +1 -1
@@ -113,7 +113,7 @@ static const unsigned char *commit_graft_sha1_access(size_t index, void *table)int commit_graft_pos (struct repository *r,const unsigned char *sha1) { -return sha1_pos (sha1, r->parsed_objects->grafts, +return hash_pos (sha1, r->parsed_objects->grafts, r->parsed_objects->grafts_nr, commit_graft_sha1_access); }
oid-array.c +1 -1
@@ -31,7 +31,7 @@ static const unsigned char *sha1_access(size_t index, void *table)int oid_array_lookup (struct oid_array *array,const struct object_id *oid) {oid_array_sort (array); -return sha1_pos (oid->hash, array->oid, array->nr, sha1_access); +return hash_pos (oid->hash, array->oid, array->nr, sha1_access); }void oid_array_clear (struct oid_array *array)
pack-bitmap-write.c +1 -1
@@ -482,7 +482,7 @@ static void write_selected_commits_v1(struct hashfile *f,struct bitmapped_commit *stored = &writer.selected[i];int commit_pos = -sha1_pos (stored->commit->object.oid.hash, index, index_nr, sha1_access); +hash_pos (stored->commit->object.oid.hash, index, index_nr, sha1_access);if (commit_pos <0 )BUG ("trying to write commit not in index" );
rerere.c +1 -1
@@ -147,7 +147,7 @@ static struct rerere_dir *find_rerere_dir(const char *hex)if (get_sha1_hex (hex, hash))return NULL ;/* BUG */ - pos =sha1_pos (hash, rerere_dir, rerere_dir_nr, rerere_dir_hash); + pos =hash_pos (hash, rerere_dir, rerere_dir_nr, rerere_dir_hash);if (pos <0 ) { rr_dir =xmalloc (sizeof (*rr_dir));hashcpy (rr_dir->hash, hash);
sha1-lookup.c +4 -4
@@ -47,11 +47,11 @@ static uint32_t take2(const unsigned char *sha1)*/ /* * The table should contain "nr" elements. -* The sha1 of element i (between 0 and nr - 1) should be returned +* The hash of element i (between 0 and nr - 1) should be returned * by "fn(i, table)". */ -int sha1_pos (const unsigned char *hash,void *table,size_t nr, -sha1_access_fn fn) +int hash_pos (const unsigned char *hash,void *table,size_t nr, +hash_access_fn fn) {size_t hi = nr;size_t lo =0 ;
@@ -74,7 +74,7 @@ int sha1_pos(const unsigned char *hash, void *table, size_t nr,if (lov != hiv) {/* * At this point miv could be equal -* to hiv (but sha1 could still be higher); +* to hiv (but hash could still be higher); * the invariant of (mi < hi) should be * kept. */
Signature · 1 line
2.30.0
PATCH v2 4/4 hash-lookup: rename from sha1-lookup
In reply to Martin ÅgrenChange all remnants of "sha1" in hash-lookup.c and .h and rename them to reflect that we're not just able to handle SHA-1 these days.
--- sha1-lookup.h => hash-lookup.h | 12 ++++++------ bisect.c | 2 +- builtin/name-rev.c | 2 +- commit-graph.c | 2 +- commit.c | 2 +- sha1-lookup.c => hash-lookup.c | 14 +++++++------- midx.c | 2 +- object-file.c | 2 +- oid-array.c | 2 +- pack-bitmap-write.c | 2 +- packfile.c | 2 +- patch-ids.c | 2 +- rerere.c | 2 +- Makefile | 2 +- 14 files changed, 25 insertions(+), 25 deletions(-) rename sha1-lookup.h => hash-lookup.h (78%) rename sha1-lookup.c => hash-lookup.c (90%)
hash-lookup.h renamed from sha1-lookup.h +6 -6
@@ -1,5 +1,5 @@ -#ifndef SHA1_LOOKUP_H -#define SHA1_LOOKUP_H +#ifndef HASH_LOOKUP_H +#define HASH_LOOKUP_H typedef const unsigned char *hash_access_fn (size_t index,void *table);
@@ -9,12 +9,12 @@ int hash_pos(const unsigned char *hash, hash_access_fn fn);/* -* Searches for sha1 in table, using the given fanout table to determine the +* Searches for hash in table, using the given fanout table to determine the * interval to search, then using binary search. Returns 1 if found, 0 if not. * * Takes the following parameters: * -* - sha1: the hash to search for +* - hash: the hash to search for * - fanout_nbo: a 256-element array of NETWORK-order 32-bit integers; the * integer at position i represents the number of elements in table whose * first byte is less than or equal to i
@@ -23,10 +23,10 @@ int hash_pos(const unsigned char *hash,* GIT_MAX_RAWSZ or greater) * - result: if not NULL, this function stores the element index of the * position found (if the search is successful) or the index of the least -* element that is greater than sha1 (if the search is not successful) +* element that is greater than hash (if the search is not successful) * * This function does not verify the validity of the fanout table. */ -int bsearch_hash (const unsigned char *sha1,const uint32_t *fanout_nbo, +int bsearch_hash (const unsigned char *hash,const uint32_t *fanout_nbo,const unsigned char *table,size_t stride,uint32_t *result);#endif
bisect.c +1 -1
@@ -6,7 +6,7 @@#include "refs.h" #include "list-objects.h" #include "quote.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "run-command.h" #include "log-tree.h" #include "bisect.h"
builtin/name-rev.c +1 -1
@@ -7,7 +7,7 @@#include "refs.h" #include "parse-options.h" #include "prio-queue.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "commit-slab.h" /*
commit-graph.c +1 -1
@@ -7,7 +7,7 @@#include "object.h" #include "refs.h" #include "revision.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "commit-graph.h" #include "object-store.h" #include "alloc.h"
commit.c +1 -1
@@ -14,7 +14,7 @@#include "mergesort.h" #include "commit-slab.h" #include "prio-queue.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "wt-status.h" #include "advice.h" #include "refs.h"
hash-lookup.c renamed from sha1-lookup.c +7 -7
@@ -1,9 +1,9 @@#include "cache.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" -static uint32_t take2 (const unsigned char *sha1) +static uint32_t take2 (const unsigned char *hash) { -return ((sha1[0 ] <<8 ) | sha1[1 ]); +return ((hash[0 ] <<8 ) | hash[1 ]); }/*
@@ -100,17 +100,17 @@ int hash_pos(const unsigned char *hash, void *table, size_t nr,return index_pos_to_insert_pos (lo); } -int bsearch_hash (const unsigned char *sha1,const uint32_t *fanout_nbo, +int bsearch_hash (const unsigned char *hash,const uint32_t *fanout_nbo,const unsigned char *table,size_t stride,uint32_t *result) {uint32_t hi, lo; - hi =ntohl (fanout_nbo[*sha1]); - lo = ((*sha1 ==0x0 ) ?0 :ntohl (fanout_nbo[*sha1 -1 ])); + hi =ntohl (fanout_nbo[*hash]); + lo = ((*hash ==0x0 ) ?0 :ntohl (fanout_nbo[*hash -1 ]));while (lo < hi) {unsigned mi = lo + (hi - lo) /2 ; -int cmp =hashcmp (table + mi * stride, sha1); +int cmp =hashcmp (table + mi * stride, hash);if (!cmp) {if (result)
midx.c +1 -1
@@ -5,7 +5,7 @@#include "lockfile.h" #include "packfile.h" #include "object-store.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "midx.h" #include "progress.h" #include "trace2.h"
object-file.c +1 -1
@@ -20,7 +20,7 @@#include "tree-walk.h" #include "refs.h" #include "pack-revindex.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "bulk-checkin.h" #include "repository.h" #include "replace-object.h"
oid-array.c +1 -1
@@ -1,6 +1,6 @@#include "cache.h" #include "oid-array.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" void oid_array_append (struct oid_array *array,const struct object_id *oid) {
pack-bitmap-write.c +1 -1
@@ -9,7 +9,7 @@#include "pack-revindex.h" #include "pack.h" #include "pack-bitmap.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "pack-objects.h" #include "commit-reach.h"
packfile.c +1 -1
@@ -7,7 +7,7 @@#include "packfile.h" #include "delta.h" #include "streaming.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "commit.h" #include "object.h" #include "tag.h"
patch-ids.c +1 -1
@@ -1,7 +1,7 @@#include "cache.h" #include "diff.h" #include "commit.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #include "patch-ids.h" static int patch_id_defined (struct commit *commit)
rerere.c +1 -1
@@ -10,7 +10,7 @@#include "attr.h" #include "pathspec.h" #include "object-store.h" -#include "sha1-lookup.h" +#include "hash-lookup.h" #define RESOLVED 0#define PUNTED 1
Makefile +1 -1
@@ -901,6 +901,7 @@ LIB_OBJS += gettext.o LIB_OBJS += gpg-interface.o LIB_OBJS += graph.o LIB_OBJS += grep.o +LIB_OBJS += hash-lookup.o LIB_OBJS += hashmap.o LIB_OBJS += help.o LIB_OBJS += hex.o
@@ -995,7 +996,6 @@ LIB_OBJS += sequencer.o LIB_OBJS += serve.o LIB_OBJS += server-info.o LIB_OBJS += setup.o -LIB_OBJS += sha1-lookup.o LIB_OBJS += shallow.o LIB_OBJS += sideband.o LIB_OBJS += sigchain.o
Signature · 1 line
2.30.0
Quoted 6 lines · Martin Ågren
Thanks to Derrick and brian for commenting on v1 [1] of my series for renaming sha1-foo files and generalizing "sha", "sha1" and so on in them. I realized I hadn't renamed the header guard in
hash-lookup.has I renamed the file. That made me realize that I had failed to look for "SHA-1" (capital letters). So this v2 is a bit bigger than v1, but not by too much, I think. The range-diff is below.
Makes sense. Thanks for being diligent!
Quoted 61 lines
Range-diff against v1:
1:aac3a3c3e2! 1:4d69d448a3object-name.c: rename fromsha1-name.c
@@ Commit message
Generalize the last remnants of "sha" and "sha1" in this file and rename it to reflect that we're not just able to handle SHA-1 these days.+ We need to update one test to check for an updated error string.
+Signed-off-by Martin Ågren <[email protected]>+ ##
t/t1512-rev-parse-disambiguation.sh##
+@@t/t1512-rev-parse-disambiguation.sh:test_expect_success'blob and tree' ' +
+test_expect_success'warn ambiguity when no candidate matches type hint' '
+test_must_failgit rev-parse --verify 000000000^{commit} 2>actual &&
+-test_i18ngrep"short SHA1 000000000 is ambiguous" actual
++test_i18ngrep"short object ID 000000000 is ambiguous" actual
+ '
+
+test_expect_success'disambiguate tree-ish' '
+
##list-objects-filter.c##
@@
* in the traversal (until we mark it SEEN). This is a way to
@@object-name.c: static void unique_in_pack(structpacked_git*p,
break;
update_candidates(ds, &oid);
}
+@@object-name.c: static enumget_oid_resultget_short_oid(struct repository *r,
+ if (!quietly && (status ==SHORT_NAME_AMBIGUOUS)) {
+ structoid_arraycollect =OID_ARRAY_INIT;
+
+-error(_("short SHA1 %s is ambiguous"), ds.hex_pfx);
++error(_("short object ID %s is ambiguous"), ds.hex_pfx);
+
+ /*
+ * We may still have ambiguity if we simply saw a series of
@@object-name.c: static enumget_oid_resultget_oid_with_context_1(struct repository *repo,
if (!ret)
return ret;
2:4243886d8a! 2:7ab29b868fobject-file.c: rename fromsha1-file.c
@@sha1-file.c=>object-file.c
* creation etc.
*/
#include "cache.h"
+@@object-file.c: static int alt_odb_usable(structraw_object_store*o,
+ * LF separated. Its base points at a statically allocated buffer that
+ * contains "/the/directory/corresponding/to/.git/objects/...", while
+ * its name points just after the slash at the end of ".git/objects/"
+- * in the example above, and has enough space to hold 40-byte hex
+- * SHA1, an extra slash for the first level indirection, and the
+- * terminating NUL.
++ * in the example above, and has enough space to hold all hex characters
++ * of the object ID, an extra slash for the first level indirection, and
++ * the terminating NUL.
+ */
+ static void read_info_alternates(struct repository *r,
+ const char*relative_base,##
Makefile##
@@Makefile:LIB_OBJS+= notes-cache.o
Quoted 16 lines
3: 8d3b123633 = 3: 91617de0ac sha1-lookup: rename `sha1_pos()` as `hash_pos()`
4: afee010474 ! 4: 9df53353dc hash-lookup: rename from sha1-lookup
@@ Commit message
Signed-off-by: Martin Ågren <[email protected]>
## sha1-lookup.h => hash-lookup.h ##
+@@
+-#ifndef SHA1_LOOKUP_H
+-#define SHA1_LOOKUP_H
++#ifndef HASH_LOOKUP_H
++#define HASH_LOOKUP_H
+
+ typedef const unsigned char *hash_access_fn(size_t index, void *table);
+
@@ hash-lookup.h: int hash_pos(const unsigned char *hash,
hash_access_fn fn);This range-diff looks sensible. I approve v2.
Thanks,
-Stolee
Quoted 10 lines · Derrick Stolee
Quoted 2 lines · Martin Ågren
"SHA-1" (capital letters). So this v2 is a bit bigger than v1, but not by too much, I think. The range-diff is below.
Makes sense. Thanks for being diligent!
This range-diff looks sensible. I approve v2.
Reviewed-by Derrick Stolee <[email protected]>
Thanks, Stolee!
Martin