| 174 | } |
| 175 | |
| 176 | static void gc_config(struct gc_config *cfg) |
| 177 | { |
| 178 | const char *value; |
| 179 | char *owned = NULL; |
| 180 | unsigned long ulongval; |
| 181 | |
| 182 | if (!repo_config_get_value(the_repository, "gc.packrefs", &value)) { |
| 183 | if (value && !strcmp(value, "notbare")) |
| 184 | cfg->pack_refs = -1; |
| 185 | else |
| 186 | cfg->pack_refs = git_config_bool("gc.packrefs", value); |
| 187 | } |
| 188 | |
| 189 | if (gc_config_is_timestamp_never("gc.reflogexpire") && |
| 190 | gc_config_is_timestamp_never("gc.reflogexpireunreachable")) |
| 191 | cfg->prune_reflogs = 0; |
| 192 | |
| 193 | repo_config_get_int(the_repository, "gc.aggressivewindow", &cfg->aggressive_window); |
| 194 | repo_config_get_int(the_repository, "gc.aggressivedepth", &cfg->aggressive_depth); |
| 195 | repo_config_get_int(the_repository, "gc.auto", &cfg->gc_auto_threshold); |
| 196 | repo_config_get_int(the_repository, "gc.autopacklimit", &cfg->gc_auto_pack_limit); |
| 197 | repo_config_get_bool(the_repository, "gc.autodetach", &cfg->detach_auto); |
| 198 | repo_config_get_bool(the_repository, "gc.cruftpacks", &cfg->cruft_packs); |
| 199 | repo_config_get_ulong(the_repository, "gc.maxcruftsize", &cfg->max_cruft_size); |
| 200 | |
| 201 | if (!repo_config_get_expiry(the_repository, "gc.pruneexpire", &owned)) { |
| 202 | free(cfg->prune_expire); |
| 203 | cfg->prune_expire = owned; |
| 204 | } |
| 205 | |
| 206 | if (!repo_config_get_expiry(the_repository, "gc.worktreepruneexpire", &owned)) { |
| 207 | free(cfg->prune_worktrees_expire); |
| 208 | cfg->prune_worktrees_expire = owned; |
| 209 | } |
| 210 | |
| 211 | if (!repo_config_get_expiry(the_repository, "gc.logexpiry", &owned)) { |
| 212 | free(cfg->gc_log_expire); |
| 213 | cfg->gc_log_expire = owned; |
| 214 | } |
| 215 | |
| 216 | repo_config_get_ulong(the_repository, "gc.bigpackthreshold", &cfg->big_pack_threshold); |
| 217 | repo_config_get_ulong(the_repository, "pack.deltacachesize", &cfg->max_delta_cache_size); |
| 218 | |
| 219 | if (!repo_config_get_ulong(the_repository, "core.deltabasecachelimit", &ulongval)) |
| 220 | cfg->delta_base_cache_limit = ulongval; |
| 221 | |
| 222 | if (!repo_config_get_string(the_repository, "gc.repackfilter", &owned)) { |
| 223 | free(cfg->repack_filter); |
| 224 | cfg->repack_filter = owned; |
| 225 | } |
| 226 | |
| 227 | if (!repo_config_get_string(the_repository, "gc.repackfilterto", &owned)) { |
| 228 | free(cfg->repack_filter_to); |
| 229 | cfg->repack_filter_to = owned; |
| 230 | } |
| 231 | |
| 232 | repo_config(the_repository, git_default_config, NULL); |
| 233 | } |
no test coverage detected