config.txt: move gc.* to a separate file
[gitweb.git] / Documentation / config.txt
index 92bc4202455dab3fb32bd5b22d70bd3d89f341ab..dee012a5d51e2cf639969f9d227198c74cba8ef8 100644 (file)
@@ -325,196 +325,15 @@ include::config/difftool.txt[]
 
 include::config/fastimport.txt[]
 
-include::fetch-config.txt[]
-
-include::format-config.txt[]
-
-filter.<driver>.clean::
-       The command which is used to convert the content of a worktree
-       file to a blob upon checkin.  See linkgit:gitattributes[5] for
-       details.
-
-filter.<driver>.smudge::
-       The command which is used to convert the content of a blob
-       object to a worktree file upon checkout.  See
-       linkgit:gitattributes[5] for details.
-
-fsck.<msg-id>::
-       During fsck git may find issues with legacy data which
-       wouldn't be generated by current versions of git, and which
-       wouldn't be sent over the wire if `transfer.fsckObjects` was
-       set. This feature is intended to support working with legacy
-       repositories containing such data.
-+
-Setting `fsck.<msg-id>` will be picked up by linkgit:git-fsck[1], but
-to accept pushes of such data set `receive.fsck.<msg-id>` instead, or
-to clone or fetch it set `fetch.fsck.<msg-id>`.
-+
-The rest of the documentation discusses `fsck.*` for brevity, but the
-same applies for the corresponding `receive.fsck.*` and
-`fetch.<msg-id>.*`. variables.
-+
-Unlike variables like `color.ui` and `core.editor` the
-`receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>` variables will not
-fall back on the `fsck.<msg-id>` configuration if they aren't set. To
-uniformly configure the same fsck settings in different circumstances
-all three of them they must all set to the same values.
-+
-When `fsck.<msg-id>` is set, errors can be switched to warnings and
-vice versa by configuring the `fsck.<msg-id>` setting where the
-`<msg-id>` is the fsck message ID and the value is one of `error`,
-`warn` or `ignore`. For convenience, fsck prefixes the error/warning
-with the message ID, e.g. "missingEmail: invalid author/committer line
-- missing email" means that setting `fsck.missingEmail = ignore` will
-hide that issue.
-+
-In general, it is better to enumerate existing objects with problems
-with `fsck.skipList`, instead of listing the kind of breakages these
-problematic objects share to be ignored, as doing the latter will
-allow new instances of the same breakages go unnoticed.
-+
-Setting an unknown `fsck.<msg-id>` value will cause fsck to die, but
-doing the same for `receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>`
-will only cause git to warn.
-
-fsck.skipList::
-       The path to a list of object names (i.e. one unabbreviated SHA-1 per
-       line) that are known to be broken in a non-fatal way and should
-       be ignored. On versions of Git 2.20 and later comments ('#'), empty
-       lines, and any leading and trailing whitespace is ignored. Everything
-       but a SHA-1 per line will error out on older versions.
-+
-This feature is useful when an established project should be accepted
-despite early commits containing errors that can be safely ignored
-such as invalid committer email addresses.  Note: corrupt objects
-cannot be skipped with this setting.
-+
-Like `fsck.<msg-id>` this variable has corresponding
-`receive.fsck.skipList` and `fetch.fsck.skipList` variants.
-+
-Unlike variables like `color.ui` and `core.editor` the
-`receive.fsck.skipList` and `fetch.fsck.skipList` variables will not
-fall back on the `fsck.skipList` configuration if they aren't set. To
-uniformly configure the same fsck settings in different circumstances
-all three of them they must all set to the same values.
-+
-Older versions of Git (before 2.20) documented that the object names
-list should be sorted. This was never a requirement, the object names
-could appear in any order, but when reading the list we tracked whether
-the list was sorted for the purposes of an internal binary search
-implementation, which could save itself some work with an already sorted
-list. Unless you had a humongous list there was no reason to go out of
-your way to pre-sort the list. After Git version 2.20 a hash implementation
-is used instead, so there's now no reason to pre-sort the list.
-
-gc.aggressiveDepth::
-       The depth parameter used in the delta compression
-       algorithm used by 'git gc --aggressive'.  This defaults
-       to 50.
-
-gc.aggressiveWindow::
-       The window size parameter used in the delta compression
-       algorithm used by 'git gc --aggressive'.  This defaults
-       to 250.
-
-gc.auto::
-       When there are approximately more than this many loose
-       objects in the repository, `git gc --auto` will pack them.
-       Some Porcelain commands use this command to perform a
-       light-weight garbage collection from time to time.  The
-       default value is 6700.  Setting this to 0 disables it.
-
-gc.autoPackLimit::
-       When there are more than this many packs that are not
-       marked with `*.keep` file in the repository, `git gc
-       --auto` consolidates them into one larger pack.  The
-       default value is 50.  Setting this to 0 disables it.
-
-gc.autoDetach::
-       Make `git gc --auto` return immediately and run in background
-       if the system supports it. Default is true.
-
-gc.bigPackThreshold::
-       If non-zero, all packs larger than this limit are kept when
-       `git gc` is run. This is very similar to `--keep-base-pack`
-       except that all packs that meet the threshold are kept, not
-       just the base pack. Defaults to zero. Common unit suffixes of
-       'k', 'm', or 'g' are supported.
-+
-Note that if the number of kept packs is more than gc.autoPackLimit,
-this configuration variable is ignored, all packs except the base pack
-will be repacked. After this the number of packs should go below
-gc.autoPackLimit and gc.bigPackThreshold should be respected again.
-
-gc.writeCommitGraph::
-       If true, then gc will rewrite the commit-graph file when
-       linkgit:git-gc[1] is run. When using linkgit:git-gc[1]
-       '--auto' the commit-graph will be updated if housekeeping is
-       required. Default is false. See linkgit:git-commit-graph[1]
-       for details.
+include::config/fetch.txt[]
+
+include::config/format.txt[]
+
+include::config/filter.txt[]
+
+include::config/fsck.txt[]
 
-gc.logExpiry::
-       If the file gc.log exists, then `git gc --auto` will print
-       its content and exit with status zero instead of running
-       unless that file is more than 'gc.logExpiry' old.  Default is
-       "1.day".  See `gc.pruneExpire` for more ways to specify its
-       value.
-
-gc.packRefs::
-       Running `git pack-refs` in a repository renders it
-       unclonable by Git versions prior to 1.5.1.2 over dumb
-       transports such as HTTP.  This variable determines whether
-       'git gc' runs `git pack-refs`. This can be set to `notbare`
-       to enable it within all non-bare repos or it can be set to a
-       boolean value.  The default is `true`.
-
-gc.pruneExpire::
-       When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'.
-       Override the grace period with this config variable.  The value
-       "now" may be used to disable this grace period and always prune
-       unreachable objects immediately, or "never" may be used to
-       suppress pruning.  This feature helps prevent corruption when
-       'git gc' runs concurrently with another process writing to the
-       repository; see the "NOTES" section of linkgit:git-gc[1].
-
-gc.worktreePruneExpire::
-       When 'git gc' is run, it calls
-       'git worktree prune --expire 3.months.ago'.
-       This config variable can be used to set a different grace
-       period. The value "now" may be used to disable the grace
-       period and prune `$GIT_DIR/worktrees` immediately, or "never"
-       may be used to suppress pruning.
-
-gc.reflogExpire::
-gc.<pattern>.reflogExpire::
-       'git reflog expire' removes reflog entries older than
-       this time; defaults to 90 days. The value "now" expires all
-       entries immediately, and "never" suppresses expiration
-       altogether. With "<pattern>" (e.g.
-       "refs/stash") in the middle the setting applies only to
-       the refs that match the <pattern>.
-
-gc.reflogExpireUnreachable::
-gc.<pattern>.reflogExpireUnreachable::
-       'git reflog expire' removes reflog entries older than
-       this time and are not reachable from the current tip;
-       defaults to 30 days. The value "now" expires all entries
-       immediately, and "never" suppresses expiration altogether.
-       With "<pattern>" (e.g. "refs/stash")
-       in the middle, the setting applies only to the refs that
-       match the <pattern>.
-
-gc.rerereResolved::
-       Records of conflicted merge you resolved earlier are
-       kept for this many days when 'git rerere gc' is run.
-       You can also use more human-readable "1.month.ago", etc.
-       The default is 60 days.  See linkgit:git-rerere[1].
-
-gc.rerereUnresolved::
-       Records of conflicted merge you have not resolved are
-       kept for this many days when 'git rerere gc' is run.
-       You can also use more human-readable "1.month.ago", etc.
-       The default is 15 days.  See linkgit:git-rerere[1].
+include::config/gc.txt[]
 
 include::gitcvs-config.txt[]