Git fork
at reftables-rust 91 lines 4.2 kB view raw
1NOTE: The configuration options in `bitmapPseudoMerge.*` are considered 2EXPERIMENTAL and may be subject to change or be removed entirely in the 3future. For more information about the pseudo-merge bitmap feature, see 4the "Pseudo-merge bitmaps" section of linkgit:gitpacking[7]. 5 6bitmapPseudoMerge.<name>.pattern:: 7 Regular expression used to match reference names. Commits 8 pointed to by references matching this pattern (and meeting 9 the below criteria, like `bitmapPseudoMerge.<name>.sampleRate` 10 and `bitmapPseudoMerge.<name>.threshold`) will be considered 11 for inclusion in a pseudo-merge bitmap. 12+ 13Commits are grouped into pseudo-merge groups based on whether or not 14any reference(s) that point at a given commit match the pattern, which 15is an extended regular expression. 16+ 17Within a pseudo-merge group, commits may be further grouped into 18sub-groups based on the capture groups in the pattern. These 19sub-groupings are formed from the regular expressions by concatenating 20any capture groups from the regular expression, with a '-' dash in 21between. 22+ 23For example, if the pattern is `refs/tags/`, then all tags (provided 24they meet the below criteria) will be considered candidates for the 25same pseudo-merge group. However, if the pattern is instead 26`refs/remotes/([0-9])+/tags/`, then tags from different remotes will 27be grouped into separate pseudo-merge groups, based on the remote 28number. 29 30bitmapPseudoMerge.<name>.decay:: 31 Determines the rate at which consecutive pseudo-merge bitmap 32 groups decrease in size. Must be non-negative. This parameter 33 can be thought of as `k` in the function `f(n) = C * n^-k`, 34 where `f(n)` is the size of the `n`th group. 35+ 36Setting the decay rate equal to `0` will cause all groups to be the 37same size. Setting the decay rate equal to `1` will cause the `n`th 38group to be `1/n` the size of the initial group. Higher values of the 39decay rate cause consecutive groups to shrink at an increasing rate. 40The default is `1`. 41+ 42If all groups are the same size, it is possible that groups containing 43newer commits will be able to be used less often than earlier groups, 44since it is more likely that the references pointing at newer commits 45will be updated more often than a reference pointing at an old commit. 46 47bitmapPseudoMerge.<name>.sampleRate:: 48 Determines the proportion of non-bitmapped commits (among 49 reference tips) which are selected for inclusion in an 50 unstable pseudo-merge bitmap. Must be between `0` and `1` 51 (inclusive). The default is `1`. 52 53bitmapPseudoMerge.<name>.threshold:: 54 Determines the minimum age of non-bitmapped commits (among 55 reference tips, as above) which are candidates for inclusion 56 in an unstable pseudo-merge bitmap. The default is 57 `1.week.ago`. 58 59bitmapPseudoMerge.<name>.maxMerges:: 60 Determines the maximum number of pseudo-merge commits among 61 which commits may be distributed. 62+ 63For pseudo-merge groups whose pattern does not contain any capture 64groups, this setting is applied for all commits matching the regular 65expression. For patterns that have one or more capture groups, this 66setting is applied for each distinct capture group. 67+ 68For example, if your capture group is `refs/tags/`, then this setting 69will distribute all tags into a maximum of `maxMerges` pseudo-merge 70commits. However, if your capture group is, say, 71`refs/remotes/([0-9]+)/tags/`, then this setting will be applied to 72each remote's set of tags individually. 73+ 74Must be non-negative. The default value is 64. 75 76bitmapPseudoMerge.<name>.stableThreshold:: 77 Determines the minimum age of commits (among reference tips, 78 as above, however stable commits are still considered 79 candidates even when they have been covered by a bitmap) which 80 are candidates for a stable a pseudo-merge bitmap. The default 81 is `1.month.ago`. 82+ 83Setting this threshold to a smaller value (e.g., 1.week.ago) will cause 84more stable groups to be generated (which impose a one-time generation 85cost) but those groups will likely become stale over time. Using a 86larger value incurs the opposite penalty (fewer stable groups which are 87more useful). 88 89bitmapPseudoMerge.<name>.stableSize:: 90 Determines the size (in number of commits) of a stable 91 psuedo-merge bitmap. The default is `512`.