aboutsummaryrefslogtreecommitdiffstats
path: root/repo-settings.c
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2025-02-07 12:03:40 +0100
committerJunio C Hamano <gitster@pobox.com>2025-02-28 13:54:11 -0800
commitf1ce861c34bffbc02998173016b0bca0f6d9f6c4 (patch)
tree7b929e44dad459db118dd68774f293e0d412cb76 /repo-settings.c
parentenvironment: move access to "core.hooksPath" into repo settings (diff)
downloadgit-f1ce861c34bffbc02998173016b0bca0f6d9f6c4.tar.gz
git-f1ce861c34bffbc02998173016b0bca0f6d9f6c4.zip
environment: move access to "core.sharedRepository" into repo settings
Similar as with the preceding commit, we track "core.sharedRepository" via a pair of global variables. Move them into `struct repo_settings` so that we can instead track them per-repository. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'repo-settings.c')
-rw-r--r--repo-settings.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/repo-settings.c b/repo-settings.c
index 876d527581..67e9cfd2e6 100644
--- a/repo-settings.c
+++ b/repo-settings.c
@@ -4,6 +4,7 @@
#include "repository.h"
#include "midx.h"
#include "pack-objects.h"
+#include "setup.h"
static void repo_cfg_bool(struct repository *r, const char *key, int *dest,
int def)
@@ -181,3 +182,28 @@ const char *repo_settings_get_hooks_path(struct repository *repo)
repo_config_get_pathname(repo, "core.hookspath", &repo->settings.hooks_path);
return repo->settings.hooks_path;
}
+
+int repo_settings_get_shared_repository(struct repository *repo)
+{
+ if (!repo->settings.shared_repository_initialized) {
+ const char *var = "core.sharedrepository";
+ const char *value;
+ if (!repo_config_get_value(repo, var, &value))
+ repo->settings.shared_repository = git_config_perm(var, value);
+ else
+ repo->settings.shared_repository = PERM_UMASK;
+ repo->settings.shared_repository_initialized = 1;
+ }
+ return repo->settings.shared_repository;
+}
+
+void repo_settings_set_shared_repository(struct repository *repo, int value)
+{
+ repo->settings.shared_repository = value;
+ repo->settings.shared_repository_initialized = 1;
+}
+
+void repo_settings_reset_shared_repository(struct repository *repo)
+{
+ repo->settings.shared_repository_initialized = 0;
+}