Is there an alternative to "git repack -a -d" that repacks everything
but the first pack?

That would be a pretty good idea for big repositories. If I were to implement it, I would actually add a .git/config option like pack.permanent so that more than one pack could be made permanent; then to repack really really everything you'd need "git repack -a -a -d".

Actually there is something like this, as seen from the source of git-repack:

            for e in `cd "$PACKDIR" && find . -type f -name '*.pack' \
                     | sed -e 's/^\.\///' -e 's/\.pack$//'`
            do
                    if [ -e "$PACKDIR/$e.keep" ]; then
                            : keep
                    else
                            args="$args --unpacked=$e.pack"
                            existing="$existing $e"
                    fi
            done

So, just create a file named as the pack, but with extension ".keep".

Paolo

Reply via email to