void prepare_repo_settings(struct repository *r)
{
- const struct repo_settings defaults = REPO_SETTINGS_INIT;
int experimental;
int value;
const char *strval;
if (r->settings.initialized)
return;
- memcpy(&r->settings, &defaults, sizeof(defaults));
+ repo_settings_clear(r);
r->settings.initialized++;
/* Booleans config or default, cascades to other settings */
r->settings.packed_git_limit = ulongval;
}
+void repo_settings_clear(struct repository *r)
+{
+ struct repo_settings empty = REPO_SETTINGS_INIT;
+ FREE_AND_NULL(r->settings.fsmonitor);
+ r->settings = empty;
+}
+
enum log_refs_config repo_settings_get_log_all_ref_updates(struct repository *repo)
{
const char *value;
}
void prepare_repo_settings(struct repository *r);
+void repo_settings_clear(struct repository *r);
/* Read the value for "core.logAllRefUpdates". */
enum log_refs_config repo_settings_get_log_all_ref_updates(struct repository *repo);
parsed_object_pool_clear(repo->parsed_objects);
FREE_AND_NULL(repo->parsed_objects);
- FREE_AND_NULL(repo->settings.fsmonitor);
+ repo_settings_clear(repo);
if (repo->config) {
git_configset_clear(repo->config);