| NOTE: The configuration options in `bitmapPseudoMerge.*` are considered | |
| EXPERIMENTAL and may be subject to change or be removed entirely in the | |
| future. For more information about the pseudo-merge bitmap feature, see | |
| the "Pseudo-merge bitmaps" section of linkgit:gitpacking[7]. | |
| bitmapPseudoMerge.<name>.pattern:: | |
| Regular expression used to match reference names. Commits | |
| pointed to by references matching this pattern (and meeting | |
| the below criteria, like `bitmapPseudoMerge.<name>.sampleRate` | |
| and `bitmapPseudoMerge.<name>.threshold`) will be considered | |
| for inclusion in a pseudo-merge bitmap. | |
| + | |
| Commits are grouped into pseudo-merge groups based on whether or not | |
| any reference(s) that point at a given commit match the pattern, which | |
| is an extended regular expression. | |
| + | |
| Within a pseudo-merge group, commits may be further grouped into | |
| sub-groups based on the capture groups in the pattern. These | |
| sub-groupings are formed from the regular expressions by concatenating | |
| any capture groups from the regular expression, with a '-' dash in | |
| between. | |
| + | |
| For example, if the pattern is `refs/tags/`, then all tags (provided | |
| they meet the below criteria) will be considered candidates for the | |
| same pseudo-merge group. However, if the pattern is instead | |
| `refs/remotes/([0-9])+/tags/`, then tags from different remotes will | |
| be grouped into separate pseudo-merge groups, based on the remote | |
| number. | |
| bitmapPseudoMerge.<name>.decay:: | |
| Determines the rate at which consecutive pseudo-merge bitmap | |
| groups decrease in size. Must be non-negative. This parameter | |
| can be thought of as `k` in the function `f(n) = C * n^-k`, | |
| where `f(n)` is the size of the `n`th group. | |
| + | |
| Setting the decay rate equal to `0` will cause all groups to be the | |
| same size. Setting the decay rate equal to `1` will cause the `n`th | |
| group to be `1/n` the size of the initial group. Higher values of the | |
| decay rate cause consecutive groups to shrink at an increasing rate. | |
| The default is `1`. | |
| + | |
| If all groups are the same size, it is possible that groups containing | |
| newer commits will be able to be used less often than earlier groups, | |
| since it is more likely that the references pointing at newer commits | |
| will be updated more often than a reference pointing at an old commit. | |
| bitmapPseudoMerge.<name>.sampleRate:: | |
| Determines the proportion of non-bitmapped commits (among | |
| reference tips) which are selected for inclusion in an | |
| unstable pseudo-merge bitmap. Must be greater than `0` and | |
| less than or equal to `1`. The default is `1`. | |
| bitmapPseudoMerge.<name>.threshold:: | |
| Determines the minimum age of non-bitmapped commits (among | |
| reference tips, as above) which are candidates for inclusion | |
| in an unstable pseudo-merge bitmap. The default is | |
| `1.week.ago`. | |
| bitmapPseudoMerge.<name>.maxMerges:: | |
| Determines the maximum number of pseudo-merge commits among | |
| which commits may be distributed. | |
| + | |
| For pseudo-merge groups whose pattern does not contain any capture | |
| groups, this setting is applied for all commits matching the regular | |
| expression. For patterns that have one or more capture groups, this | |
| setting is applied for each distinct capture group. | |
| + | |
| For example, if your capture group is `refs/tags/`, then this setting | |
| will distribute all tags into a maximum of `maxMerges` pseudo-merge | |
| commits. However, if your capture group is, say, | |
| `refs/remotes/([0-9]+)/tags/`, then this setting will be applied to | |
| each remote's set of tags individually. | |
| + | |
| Must be non-negative. The default value is 64. | |
| bitmapPseudoMerge.<name>.stableThreshold:: | |
| Determines the minimum age of commits (among reference tips, | |
| as above, however stable commits are still considered | |
| candidates even when they have been covered by a bitmap) which | |
| are candidates for a stable a pseudo-merge bitmap. The default | |
| is `1.month.ago`. | |
| + | |
| Setting this threshold to a smaller value (e.g., 1.week.ago) will cause | |
| more stable groups to be generated (which impose a one-time generation | |
| cost) but those groups will likely become stale over time. Using a | |
| larger value incurs the opposite penalty (fewer stable groups which are | |
| more useful). | |
| bitmapPseudoMerge.<name>.stableSize:: | |
| Determines the size (in number of commits) of a stable | |
| psuedo-merge bitmap. The default is `512`. |