Ensure git-repack -a -d --max-pack-size=N deletes correct packs
authorDana How <danahow@gmail.com>
Fri, 25 May 2007 02:06:42 +0000 (19:06 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 25 May 2007 02:45:14 +0000 (19:45 -0700)
The packfile portion of the "remove redundant" code
near the bottom of git-repack.sh is broken when
pack splitting occurs.  Particularly since this is
the only place where we automatically delete packfiles,
make sure it works properly for all cases,  old or new.

Signed-off-by: Dana L. How <danahow@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-repack.sh

index 4ea6e5b9e5530be4fb53c973df0055b776875742..8c32724be75b77f145106f96257afccb56cfc1ef 100755 (executable)
@@ -69,6 +69,7 @@ if [ -z "$names" ]; then
        echo Nothing new to pack.
 fi
 for name in $names ; do
+       fullbases="$fullbases pack-$name"
        chmod a-w "$PACKTMP-$name.pack"
        chmod a-w "$PACKTMP-$name.idx"
        if test "$quiet" != '-q'; then
@@ -105,8 +106,8 @@ then
                ( cd "$PACKDIR" &&
                  for e in $existing
                  do
-                       case "$e" in
-                       pack-$name) ;;
+                       case " $fullbases " in
+                       *" $e "*) ;;
                        *)      rm -f "$e.pack" "$e.idx" "$e.keep" ;;
                        esac
                  done