On Sun, Nov 04 2018, brian m. carlson wrote:
> The transition plan anticipates us using a syntax such as "^{sha1}" for
> disambiguation. Since this is a syntax some people will be typing a
> lot, it makes sense to provide a short, easy-to-type syntax. Omitting
> the dash doesn't create any ambiguity; however, it does make the syntax
> shorter and easier to type, especially for touch typists. In addition,
> the transition plan already uses "sha1" in this context.
The comment for git_hash_algo's "name" member in hash.h says:
/*
* The name of the algorithm, as appears in the config file and in
* messages.
*/
const char *name;
Whereas this commit message just refers to a doesn't-yet-exist ^{$algo}
syntax. The hash-function-transition.txt doc also uses forms like sha1
or sha256 in config, not sha-1 or sha-256.
I don't have a point I'm leading up to here, other than a question of
whether we should be doing something closer to this:
diff --git a/hash.h b/hash.h
index 7c8238bc2e..8ae51ac410 100644
--- a/hash.h
+++ b/hash.h
@@ -67,10 +67,17 @@ typedef void (*git_hash_final_fn)(unsigned char *hash,
git_hash_ctx *ctx);
struct git_hash_algo {
/*
-* The name of the algorithm, as appears in the config file and in
-* messages.
+* The short name of the algorithm (e.g. "sha1") for use in
+* config files (see hash-function-transition.txt) and the
+* ^{$name} peel syntax.
*/
- const char *name;
+ const char *short_name;
+
+ /*
+* The long name of the algorithm (e.g. "SHA-1") for use in
+* messages to users.
+*/
+ const char *long_name;
/* A four-byte version identifier, used in pack indices. */
uint32_t format_id;
diff --git a/sha1-file.c b/sha1-file.c
index dd0b6aa873..5ad0526155 100644
--- a/sha1-file.c
+++ b/sha1-file.c
@@ -86,6 +86,7 @@ static void git_hash_unknown_final(unsigned char *hash,
git_hash_ctx *ctx)
const struct git_hash_algo hash_algos[GIT_HASH_NALGOS] = {
{
+ NULL,
NULL,
0x,
0,
@@ -97,7 +98,8 @@ const struct git_hash_algo hash_algos[GIT_HASH_NALGOS] = {
NULL,
},
{
- "sha-1",
+ "sha1",
+ "SHA-1",
/* "sha1", big-endian */
0x73686131,
GIT_SHA1_RAWSZ,