diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2007-02-13 14:01:42 +0100 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-02-13 09:19:34 -0800 |
commit | c2120e5e4b9f7c548b0c49f914bc0881d7cece6f (patch) | |
tree | 84b26d22f171fb249428fc22c533c50921f9cbb5 | |
parent | 85b1f98871f19617ff7ee8ec245fe4e817a74aa4 (diff) | |
download | git-c2120e5e4b9f7c548b0c49f914bc0881d7cece6f.tar.gz git-c2120e5e4b9f7c548b0c49f914bc0881d7cece6f.tar.xz |
git-gc: run pack-refs by default unless the repo is bare
The config variable gc.packrefs is tristate now: "true", "false"
and "notbare", where "notbare" is the default.
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | Documentation/config.txt | 11 | ||||
-rw-r--r-- | Documentation/git-gc.txt | 4 | ||||
-rwxr-xr-x | git-gc.sh | 8 |
3 files changed, 23 insertions, 0 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt index 0129b1fd6..38655350f 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -321,6 +321,17 @@ format.headers:: Additional email headers to include in a patch to be submitted by mail. See gitlink:git-format-patch[1]. +gc.packrefs:: + `git gc` does not run `git pack-refs` in a bare repository by + default so that older dumb-transport clients can still fetch + from the repository. Setting this to `true` lets `git + gc` to run `git pack-refs`. Setting this to `false` tells + `git gc` never to run `git pack-refs`. The default setting is + `notbare`. Enable it only when you know you do not have to + support such clients. The default setting will change to `true` + at some stage, and setting this to `false` will continue to + prevent `git pack-refs` from being run from `git gc`. + gc.reflogexpire:: `git reflog expire` removes reflog entries older than this time; defaults to 90 days. diff --git a/Documentation/git-gc.txt b/Documentation/git-gc.txt index e37758ad1..bc1658434 100644 --- a/Documentation/git-gc.txt +++ b/Documentation/git-gc.txt @@ -62,6 +62,10 @@ The optional configuration variable 'gc.rerereunresolved' indicates how long records of conflicted merge you have not resolved are kept. This defaults to 15 days. +The optional configuration variable 'gc.packrefs' determines if +`git gc` runs `git-pack-refs`. Without the configuration, `git-pack-refs` +is not run in bare repositories by default, to allow older dumb-transport +clients fetch from the repository, but this will change in the future. See Also -------- @@ -22,6 +22,14 @@ do shift done +case "$(git config --get gc.packrefs)" in +notbare|"") + test $(is_bare_repository) = true || pack_refs=true;; +*) + pack_refs=$(git config --bool --get gc.packrefs) +esac + +test "true" != "$pack_refs" || git-pack-refs --prune && git-reflog expire --all && git-repack -a -d -l && |