Re: Remove unneeded packs
On Sun, 13 Nov 2005 11:58:11 +0100 Lukas Sandstr__m wrote:
Show 33 quoted lines
> Subject: [PATCH] Make sure all old packfiles are removed when doing a full repack
>
> This is nessecary because unrachable objects in packfiles makes git-pack-redundant
> flag them as non-redundant.
>
> Signed-off-by: Lukas Sandstr____m <lukass@etek.chalmers.se>
>
> ---
>
> git-repack.sh | 16 +++++++++++++++-
> 1 files changed, 15 insertions(+), 1 deletions(-)
>
> applies-to: 9a0f0c748316751fbf593a21f2b16bcdd975095a
> 08df1f641bd3f98a607a8413d647667adc18a633
> diff --git a/git-repack.sh b/git-repack.sh
> index f347207..293bb50 100755
> --- a/git-repack.sh
> +++ b/git-repack.sh
> @@ -32,6 +32,8 @@ case ",$all_into_one," in
> rev_list=
> rev_parse='--all'
> pack_objects=
> + existing=`cd "$PACKDIR" && \
> + find . -type f \( -name '*.pack' -o -name '*.idx' \) -print`
> ;;
> esac
> if [ "$local" ]; then
> @@ -60,7 +62,19 @@ mv .tmp-pack-$name.pack "$PACKDIR/pack-$
> mv .tmp-pack-$name.idx "$PACKDIR/pack-$name.idx" ||
> exit
>
> -if test "$remove_redandant" = t
> +if test "$all_into_one" = t
This should be
if test "$all_into_one$remove_redandant" = tt
(otherwise "git repack -a" becomes the same as "git repack -a -d").
Show 17 quoted lines
> +then
> + sync
> + ( cd "$PACKDIR" &&
> + for e in $existing
> + do
> + case "$e" in
> + ./pack-$name.pack | ./pack-$name.idx) ;;
> + *) rm -f $e ;;
> + esac
> + done
> + )
> +else if test "$remove_redandant" = t
> then
> sync
> redundant=$(git-pack-redundant --all)
> ---
> 0.99.9.GIT