Skip to content

Commit

Permalink
git-repack: repo.usedeltabaseoffset
Browse files Browse the repository at this point in the history
When configuration variable `repack.UseDeltaBaseOffset` is set
for the repository, the command passes `--delta-base-offset`
option to `git-pack-objects`; this typically results in slightly
smaller packs, but the generated packs are incompatible with
versions of git older than (and including) v1.4.3.

We will make it default to true sometime in the future, but not
for a while.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Oct 14, 2006
1 parent 63fba75 commit b6945f5
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
4 changes: 4 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,10 @@ pull.octopus::
pull.twohead::
The default merge strategy to use when pulling a single branch.

repack.usedeltabaseoffset::
Allow gitlink:git-repack[1] to create packs that uses
delta-base offset. Defaults to false.

show.difftree::
The default gitlink:git-diff-tree[1] arguments to be used
for gitlink:git-show[1].
Expand Down
14 changes: 14 additions & 0 deletions Documentation/git-repack.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,20 @@ OPTIONS
to be applied that many times to get to the necessary object.


Configuration
-------------

When configuration variable `repack.UseDeltaBaseOffset` is set
for the repository, the command passes `--delta-base-offset`
option to `git-pack-objects`; this typically results in slightly
smaller packs, but the generated packs are incompatible with
versions of git older than (and including) v1.4.3; do not set
the variable in a repository that older version of git needs to
be able to read (this includes repositories from which packs can
be copied out over http or rsync, and people who obtained packs
that way can try to use older git with it).


Author
------
Written by Linus Torvalds <torvalds@osdl.org>
Expand Down
11 changes: 10 additions & 1 deletion git-repack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Copyright (c) 2005 Linus Torvalds
#

USAGE='[-a] [-d] [-f] [-l] [-n] [-q]'
USAGE='[-a] [-d] [-f] [-l] [-n] [-q] [--window=N] [--depth=N]'
. git-sh-setup

no_update_info= all_into_one= remove_redundant=
Expand All @@ -24,6 +24,15 @@ do
shift
done

# Later we will default repack.UseDeltaBaseOffset to true
default_dbo=false

case "`git repo-config --bool repack.usedeltabaseoffset ||
echo $default_dbo`" in
true)
extra="$extra --delta-base-offset" ;;
esac

PACKDIR="$GIT_OBJECT_DIRECTORY/pack"
PACKTMP="$GIT_DIR/.tmp-$$-pack"
rm -f "$PACKTMP"-*
Expand Down

0 comments on commit b6945f5

Please sign in to comment.