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>
This commit is contained in:

committed by
Junio C Hamano

parent
85b1f98871
commit
c2120e5e4b
@ -321,6 +321,17 @@ format.headers::
|
|||||||
Additional email headers to include in a patch to be submitted
|
Additional email headers to include in a patch to be submitted
|
||||||
by mail. See gitlink:git-format-patch[1].
|
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::
|
gc.reflogexpire::
|
||||||
`git reflog expire` removes reflog entries older than
|
`git reflog expire` removes reflog entries older than
|
||||||
this time; defaults to 90 days.
|
this time; defaults to 90 days.
|
||||||
|
@ -62,6 +62,10 @@ The optional configuration variable 'gc.rerereunresolved' indicates
|
|||||||
how long records of conflicted merge you have not resolved are
|
how long records of conflicted merge you have not resolved are
|
||||||
kept. This defaults to 15 days.
|
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
|
See Also
|
||||||
--------
|
--------
|
||||||
|
@ -22,6 +22,14 @@ do
|
|||||||
shift
|
shift
|
||||||
done
|
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-pack-refs --prune &&
|
||||||
git-reflog expire --all &&
|
git-reflog expire --all &&
|
||||||
git-repack -a -d -l &&
|
git-repack -a -d -l &&
|
||||||
|
Reference in New Issue
Block a user