git-verify-pack: insist on .idx extension
authorRene Scharfe <rene.scharfe@lsrfire.ath.cx>
Thu, 10 Aug 2006 15:02:33 +0000 (17:02 +0200)
committerJunio C Hamano <junkio@cox.net>
Thu, 10 Aug 2006 21:14:34 +0000 (14:14 -0700)
git-verify-pack can be called with a filename without .idx extension.
add_packed_git() on the other hand depends on its presence.  So
instead of trying to call it with whatever the user gave us check for
that extension and add it if it's missing.

That means that you can't name your index file "blah" and your pack
file ".pack" anymore ("git-verify-pack blah" currently works in that
case).  I think this regression is a good change. ;-)

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
verify-pack.c

index 77b3d282dad6cb02f2d986e2e2497a38b22f8b5f..002b7116171d3305f5b69955852385a5ec50ed0f 100644 (file)
@@ -18,13 +18,12 @@ static int verify_one_pack(const char *path, int verbose)
                if (has_extension(arg, len, ".pack")) {
                        strcpy(arg + len - 5, ".idx");
                        len--;
+               } else if (!has_extension(arg, len, ".idx")) {
+                       if (len + 4 >= PATH_MAX)
+                               return error("name too long: %s.idx", arg);
+                       strcpy(arg + len, ".idx");
+                       len += 4;
                }
-               /* Should name foo.idx now */
-               if ((g = add_packed_git(arg, len, 1)))
-                       break;
-               /* No?  did you name just foo? */
-               strcpy(arg + len, ".idx");
-               len += 4;
                if ((g = add_packed_git(arg, len, 1)))
                        break;
                return error("packfile %s not found.", arg);