gc docs: include the "gc.*" section from "config" in "gc"
Rather than duplicating the documentation for the various "gc" options let's include the "gc" docs from git-config. They were mostly better already, and now we don't have the same docs in two places with subtly different wording. In the cases where the git-gc(1) docs were saying something the "gc" docs in git-config(1) didn't cover move the relevant section over to the git-config(1) docs. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									fc559fbb54
								
							
						
					
					
						commit
						b6a8d09f6d
					
				|  | @ -2,24 +2,39 @@ gc.aggressiveDepth:: | |||
| 	The depth parameter used in the delta compression | ||||
| 	algorithm used by 'git gc --aggressive'.  This defaults | ||||
| 	to 50. | ||||
| + | ||||
| See the documentation for the `--depth` option in | ||||
| linkgit:git-repack[1] for more details. | ||||
|  | ||||
| gc.aggressiveWindow:: | ||||
| 	The window size parameter used in the delta compression | ||||
| 	algorithm used by 'git gc --aggressive'.  This defaults | ||||
| 	to 250. | ||||
| + | ||||
| See the documentation for the `--window` option in | ||||
| linkgit:git-repack[1] for more details. | ||||
|  | ||||
| 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. | ||||
| 	default value is 6700. | ||||
| + | ||||
| Setting this to 0 disables not only automatic packing based on the | ||||
| number of loose objects, but any other heuristic `git gc --auto` will | ||||
| otherwise use to determine if there's work to do, such as | ||||
| `gc.autoPackLimit`. | ||||
|  | ||||
| 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. | ||||
| 	Setting `gc.auto` to 0 will also disable this. | ||||
| + | ||||
| See the `gc.bigPackThreshold` configuration variable below. When in | ||||
| use, it'll affect how the auto pack limit works. | ||||
|  | ||||
| gc.autoDetach:: | ||||
| 	Make `git gc --auto` return immediately and run in background | ||||
|  | @ -36,6 +51,11 @@ 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. | ||||
| + | ||||
| If the amount of memory estimated for `git repack` to run smoothly is | ||||
| not available and `gc.bigPackThreshold` is not set, the largest | ||||
| pack will also be excluded (this is the equivalent of running `git gc` | ||||
| with `--keep-base-pack`). | ||||
|  | ||||
| gc.writeCommitGraph:: | ||||
| 	If true, then gc will rewrite the commit-graph file when | ||||
|  | @ -94,6 +114,13 @@ gc.<pattern>.reflogExpireUnreachable:: | |||
| 	With "<pattern>" (e.g. "refs/stash") | ||||
| 	in the middle, the setting applies only to the refs that | ||||
| 	match the <pattern>. | ||||
| + | ||||
| These types of entries are generally created as | ||||
| a result of using `git commit --amend` or `git rebase` and are the | ||||
| commits prior to the amend or rebase occurring.  Since these changes | ||||
| are not part of the current project most users will want to expire | ||||
| them sooner, which is why the default is more aggressive than | ||||
| `gc.reflogExpire`. | ||||
|  | ||||
| gc.rerereResolved:: | ||||
| 	Records of conflicted merge you resolved earlier are | ||||
|  |  | |||
|  | @ -45,28 +45,12 @@ OPTIONS | |||
| --auto:: | ||||
| 	With this option, 'git gc' checks whether any housekeeping is | ||||
| 	required; if not, it exits without performing any work. | ||||
| 	Some git commands run `git gc --auto` after performing | ||||
| 	operations that could create many loose objects. Housekeeping | ||||
| 	is required if there are too many loose objects or too many | ||||
| 	packs in the repository. | ||||
| + | ||||
| If the number of loose objects exceeds the value of the `gc.auto` | ||||
| configuration variable, then all loose objects are combined into a | ||||
| single pack.  Setting the value of `gc.auto` | ||||
| to 0 disables automatic packing of loose objects. | ||||
| See the `gc.auto` option in the "CONFIGURATION" section below for how | ||||
| this heuristic works. | ||||
| + | ||||
| If the number of packs exceeds the value of `gc.autoPackLimit`, | ||||
| then existing packs (except those marked with a `.keep` file | ||||
| or over `gc.bigPackThreshold` limit) | ||||
| are consolidated into a single pack. | ||||
| If the amount of memory estimated for `git repack` to run smoothly is | ||||
| not available and `gc.bigPackThreshold` is not set, the largest | ||||
| pack will also be excluded (this is the equivalent of running `git gc` | ||||
| with `--keep-base-pack`). | ||||
| Setting `gc.autoPackLimit` to 0 disables automatic consolidation of | ||||
| packs. | ||||
| + | ||||
| If houskeeping is required due to many loose objects or packs, all | ||||
| Once housekeeping is triggered by exceeding the limits of | ||||
| configuration options such as `gc.auto` and `gc.autoPackLimit`, all | ||||
| other housekeeping tasks (e.g. rerere, working trees, reflog...) will | ||||
| be performed as well. | ||||
|  | ||||
|  | @ -97,66 +81,10 @@ be performed as well. | |||
| CONFIGURATION | ||||
| ------------- | ||||
|  | ||||
| The optional configuration variable `gc.reflogExpire` can be | ||||
| set to indicate how long historical entries within each branch's | ||||
| reflog should remain available in this repository.  The setting is | ||||
| expressed as a length of time, for example '90 days' or '3 months'. | ||||
| It defaults to '90 days'. | ||||
|  | ||||
| The optional configuration variable `gc.reflogExpireUnreachable` | ||||
| can be set to indicate how long historical reflog entries which | ||||
| are not part of the current branch should remain available in | ||||
| this repository.  These types of entries are generally created as | ||||
| a result of using `git commit --amend` or `git rebase` and are the | ||||
| commits prior to the amend or rebase occurring.  Since these changes | ||||
| are not part of the current project most users will want to expire | ||||
| them sooner.  This option defaults to '30 days'. | ||||
|  | ||||
| The above two configuration variables can be given to a pattern.  For | ||||
| example, this sets non-default expiry values only to remote-tracking | ||||
| branches: | ||||
|  | ||||
| ------------ | ||||
| [gc "refs/remotes/*"] | ||||
| 	reflogExpire = never | ||||
| 	reflogExpireUnreachable = 3 days | ||||
| ------------ | ||||
|  | ||||
| The optional configuration variable `gc.rerereResolved` indicates | ||||
| how long records of conflicted merge you resolved earlier are | ||||
| kept.  This defaults to 60 days. | ||||
|  | ||||
| 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'. This can be set to "notbare" to enable | ||||
| it within all non-bare repos or it can be set to a boolean value. | ||||
| This defaults to true. | ||||
|  | ||||
| The optional configuration variable `gc.writeCommitGraph` determines if | ||||
| 'git gc' should run 'git commit-graph write'. This can be set to a | ||||
| boolean value. This defaults to false. | ||||
|  | ||||
| The optional configuration variable `gc.aggressiveWindow` controls how | ||||
| much time is spent optimizing the delta compression of the objects in | ||||
| the repository when the --aggressive option is specified.  The larger | ||||
| the value, the more time is spent optimizing the delta compression.  See | ||||
| the documentation for the --window option in linkgit:git-repack[1] for | ||||
| more details.  This defaults to 250. | ||||
|  | ||||
| Similarly, the optional configuration variable `gc.aggressiveDepth` | ||||
| controls --depth option in linkgit:git-repack[1]. This defaults to 50. | ||||
|  | ||||
| The optional configuration variable `gc.pruneExpire` controls how old | ||||
| the unreferenced loose objects have to be before they are pruned.  The | ||||
| default is "2 weeks ago". | ||||
|  | ||||
| Optional configuration variable `gc.worktreePruneExpire` controls how | ||||
| old a stale working tree should be before `git worktree prune` deletes | ||||
| it. Default is "3 months ago". | ||||
| The below documentation is the same as what's found in | ||||
| linkgit:git-config[1]: | ||||
|  | ||||
| include::config/gc.txt[] | ||||
|  | ||||
| NOTES | ||||
| ----- | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Ævar Arnfjörð Bjarmason
						Ævar Arnfjörð Bjarmason