提交 c2120e5e 编写于 作者: J Johannes Schindelin 提交者: Junio C Hamano

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: NJohannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: NJunio C Hamano <junkio@cox.net>
上级 85b1f988
...@@ -321,6 +321,17 @@ format.headers:: ...@@ -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 ...@@ -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 ...@@ -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 &&
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册