diff options
-rw-r--r-- | Documentation/config.txt | 4 | ||||
-rw-r--r-- | Documentation/git-repack.txt | 14 | ||||
-rwxr-xr-x | git-repack.sh | 11 |
3 files changed, 28 insertions, 1 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt index 98c1f3e2e3..88e0bf00c2 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -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]. diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt index 49f7e0a4a4..4e6631a27f 100644 --- a/Documentation/git-repack.txt +++ b/Documentation/git-repack.txt @@ -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> diff --git a/git-repack.sh b/git-repack.sh index b525fc5dfd..2a214891a8 100755 --- a/git-repack.sh +++ b/git-repack.sh @@ -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= @@ -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"-* |