Re: [Alt. PATCH 1/2] repack: add -F flag to let user choose between --no-reuse-delta/object

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 27 Sep 2010, Jan KrÃger wrote:

> In 479b56ba ('make "repack -f" imply "pack-objects --no-reuse-object"'),
> git repack -f was changed to include recompressing all objects on the
> zlib level on the assumption that if the user wants to spend that much
> time already, some more time won't hurt (and recompressing is useful if
> the user changed the zlib compression level).
> 
> However, "some more time" can be quite long with very big repositories,
> so some users are going to appreciate being able to choose. If we are
> going to give them the choice, --no-reuse-object will probably be
> interesting a lot less frequently than --no-reuse-delta. Hence, this
> reverts -f to the old behaviour (--no-reuse-delta) and adds a new -F
> option that replaces the current -f.
> 
> Measurements taken using this patch on a current clone of git.git
> indicate a 17% decrease in time being made available to users:
> 
> git repack -Adf  34.84s user 0.56s system 145% cpu 24.388 total
> git repack -AdF  38.79s user 0.56s system 133% cpu 29.394 total
> 
> Signed-off-by: Jan KrÃger <jk@xxxxx>

Acked-by: Nicolas Pitre <nico@xxxxxxxxxxx>


> ---
> 
> --- Nicolas Pitre <nico@xxxxxxxxxxx> wrote:
> 
> > I personally don't find --no-reuse-object particularly useful.  I
> > hardly imagine that people are changing the pack compression level
> > that often if at all.  So I doubt moving the current
> > --no-reuse-object behavior to -F and reverting -f to
> > --no-reuse-delta would cause any serious inconvenience.  It certainly
> > won't _break_ anything.  So you have my ACK to do that change.
> 
> Here we go.
> 
>  Documentation/git-repack.txt |    6 +++++-
>  git-repack.sh                |    6 ++++--
>  2 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt
> index 8c67d17..9566727 100644
> --- a/Documentation/git-repack.txt
> +++ b/Documentation/git-repack.txt
> @@ -8,7 +8,7 @@ git-repack - Pack unpacked objects in a repository
>  
>  SYNOPSIS
>  --------
> -'git repack' [-a] [-A] [-d] [-f] [-l] [-n] [-q] [--window=N] [--depth=N]
> +'git repack' [-a] [-A] [-d] [-f] [-F] [-l] [-n] [-q] [--window=N] [--depth=N]
>  
>  DESCRIPTION
>  -----------
> @@ -62,6 +62,10 @@ other objects in that pack they already have locally.
>  	linkgit:git-pack-objects[1].
>  
>  -f::
> +	Pass the `--no-reuse-delta` option to `git-pack-objects`, see
> +	linkgit:git-pack-objects[1].
> +
> +-F::
>  	Pass the `--no-reuse-object` option to `git-pack-objects`, see
>  	linkgit:git-pack-objects[1].
>  
> diff --git a/git-repack.sh b/git-repack.sh
> index 1eb3bca..769baaf 100755
> --- a/git-repack.sh
> +++ b/git-repack.sh
> @@ -10,7 +10,8 @@ git repack [options]
>  a               pack everything in a single pack
>  A               same as -a, and turn unreachable objects loose
>  d               remove redundant packs, and run git-prune-packed
> -f               pass --no-reuse-object to git-pack-objects
> +f               pass --no-reuse-delta to git-pack-objects
> +F               pass --no-reuse-object to git-pack-objects
>  n               do not run git-update-server-info
>  q,quiet         be quiet
>  l               pass --local to git-pack-objects
> @@ -34,7 +35,8 @@ do
>  		unpack_unreachable=--unpack-unreachable ;;
>  	-d)	remove_redundant=t ;;
>  	-q)	GIT_QUIET=t ;;
> -	-f)	no_reuse=--no-reuse-object ;;
> +	-f)	no_reuse=--no-reuse-delta ;;
> +	-F)	no_reuse=--no-reuse-object ;;
>  	-l)	local=--local ;;
>  	--max-pack-size|--window|--window-memory|--depth)
>  		extra="$extra $1=$2"; shift ;;
> -- 
> 1.7.2.3.392.g02377.dirty
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]