git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Jan Krüger" <jk@jk.gs>
To: Nicolas Pitre <nico@fluxnic.net>
Cc: Git ML <git@vger.kernel.org>, Junio C Hamano <gitster@pobox.com>
Subject: [Alt. PATCH 1/2] repack: add -F flag to let user choose between --no-reuse-delta/object
Date: Mon, 27 Sep 2010 14:19:36 +0200	[thread overview]
Message-ID: <20100927141936.590d71b3@jk.gs> (raw)
In-Reply-To: <alpine.LFD.2.00.1009270742250.1146@xanadu.home>

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@jk.gs>
---

--- Nicolas Pitre <nico@fluxnic.net> 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

  reply	other threads:[~2010-09-27 12:19 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-27 11:31 [PATCH] repack: add -F option that passes --no-reuse-delta to pack-objects Jan Krüger
2010-09-27 11:53 ` Nicolas Pitre
2010-09-27 12:19   ` Jan Krüger [this message]
2010-09-27 12:21     ` [Alt. PATCH 2/2] Documentation: pack.compression: explain how to recompress Jan Krüger
2010-09-27 14:10       ` Nicolas Pitre
2010-09-27 14:10     ` [Alt. PATCH 1/2] repack: add -F flag to let user choose between --no-reuse-delta/object Nicolas Pitre
2010-09-27 16:50 ` [PATCH] repack: add -F option that passes --no-reuse-delta to pack-objects Junio C Hamano
2010-09-28  6:44   ` Jan Krüger
2010-09-28  9:49     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100927141936.590d71b3@jk.gs \
    --to=jk@jk.gs \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=nico@fluxnic.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).