aboutsummaryrefslogtreecommitdiffstats
path: root/repo-settings.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-04-15 13:50:14 -0700
committerJunio C Hamano <gitster@pobox.com>2025-04-15 13:50:15 -0700
commitee847e0034dbfde11f901fbfb74d210c1edad496 (patch)
tree3baa54bf940d7f0506b9160127fcc2b88ad4764b /repo-settings.c
parentMerge branch 'md/t1403-path-is-file' (diff)
parenthash: stop depending on `the_repository` in `null_oid()` (diff)
downloadgit-ee847e0034dbfde11f901fbfb74d210c1edad496.tar.gz
git-ee847e0034dbfde11f901fbfb74d210c1edad496.zip
Merge branch 'ps/object-wo-the-repository'
The object layer has been updated to take an explicit repository instance as a parameter in more code paths. * ps/object-wo-the-repository: hash: stop depending on `the_repository` in `null_oid()` hash: fix "-Wsign-compare" warnings object-file: split out logic regarding hash algorithms delta-islands: stop depending on `the_repository` object-file-convert: stop depending on `the_repository` pack-bitmap-write: stop depending on `the_repository` pack-revindex: stop depending on `the_repository` pack-check: stop depending on `the_repository` environment: move access to "core.bigFileThreshold" into repo settings pack-write: stop depending on `the_repository` and `the_hash_algo` object: stop depending on `the_repository` csum-file: stop depending on `the_repository`
Diffstat (limited to 'repo-settings.c')
-rw-r--r--repo-settings.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/repo-settings.c b/repo-settings.c
index 67e9cfd2e6..4129f8fb2b 100644
--- a/repo-settings.c
+++ b/repo-settings.c
@@ -20,6 +20,13 @@ static void repo_cfg_int(struct repository *r, const char *key, int *dest,
*dest = def;
}
+static void repo_cfg_ulong(struct repository *r, const char *key, unsigned long *dest,
+ unsigned long def)
+{
+ if (repo_config_get_ulong(r, key, dest))
+ *dest = def;
+}
+
void prepare_repo_settings(struct repository *r)
{
int experimental;
@@ -151,6 +158,19 @@ void repo_settings_clear(struct repository *r)
r->settings = empty;
}
+unsigned long repo_settings_get_big_file_threshold(struct repository *repo)
+{
+ if (!repo->settings.big_file_threshold)
+ repo_cfg_ulong(repo, "core.bigfilethreshold",
+ &repo->settings.big_file_threshold, 512 * 1024 * 1024);
+ return repo->settings.big_file_threshold;
+}
+
+void repo_settings_set_big_file_threshold(struct repository *repo, unsigned long value)
+{
+ repo->settings.big_file_threshold = value;
+}
+
enum log_refs_config repo_settings_get_log_all_ref_updates(struct repository *repo)
{
const char *value;