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,
                0x00000000,
                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,

Reply via email to