]> git.ipfire.org Git - thirdparty/git.git/commitdiff
show-index: warn when falling back to SHA-1 outside a repository
authorShreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com>
Fri, 30 Jan 2026 15:31:23 +0000 (21:01 +0530)
committerJunio C Hamano <gitster@pobox.com>
Fri, 30 Jan 2026 16:58:12 +0000 (08:58 -0800)
When 'git show-index' is run outside of a repository and no hashing
algorithm is specified via --object-format, it silently falls back
to SHA-1, relying on the historical default.

This works for existing SHA-1 based index files, but the behavior can
be ambiguous and confusing when the input index file uses a different
hash algorithm, such as SHA-256.

Add a warning when this fallback happens to make the assumption
explicit and to guide users toward using --object-format when needed.

Signed-off-by: Shreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/show-index.c

index 2c3e2940ce6bb18571795e4c765438e8101bacdc..45795da2daebaf0008af5b268d6904024fddba70 100644 (file)
@@ -43,11 +43,14 @@ int cmd_show_index(int argc,
        /*
         * Fallback to SHA1 if we are running outside of a repository.
         *
-        * TODO: Figure out and implement a way to detect the hash algorithm in use by the
-        *       the index file passed in and use that instead.
+        * TODO: If a future implementation of index file version encodes the hash
+        *       algorithm in its header, enable show-index to infer it from the
+        *       header rather than relying on repository context or a default fallback.
         */
-       if (!the_hash_algo)
+       if (!the_hash_algo) {
+               warning(_("assuming SHA-1; use --object-format to override"));
                repo_set_hash_algo(the_repository, GIT_HASH_DEFAULT);
+       }
 
        hashsz = the_hash_algo->rawsz;