From: "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: stolee@gmail.com, sunshine@sunshineco.com, allred.sean@gmail.com,
gitster@pobox.com, Derrick Stolee <derrickstolee@github.com>,
Derrick Stolee <dstolee@microsoft.com>
Subject: [PATCH 2/4] config: make some helpers repo-aware
Date: Mon, 20 Dec 2021 15:57:22 +0000 [thread overview]
Message-ID: <3b549770eb9133fc78739ecc4eaba274e138076f.1640015844.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1101.git.1640015844.gitgitgadget@gmail.com>
From: Derrick Stolee <dstolee@microsoft.com>
As we prepare to add new config helpers to write into a config.worktree,
let's make some existing methods be available for writing to a config
file relative to a repository.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
---
config.c | 29 ++++++++++++++++++++++++++---
config.h | 7 +++++++
2 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/config.c b/config.c
index c5873f3a706..9c9eef16018 100644
--- a/config.c
+++ b/config.c
@@ -2882,7 +2882,12 @@ int git_config_set_gently(const char *key, const char *value)
void git_config_set(const char *key, const char *value)
{
- git_config_set_multivar(key, value, NULL, 0);
+ repo_config_set(the_repository, key, value);
+}
+
+void repo_config_set(struct repository *r, const char *key, const char *value)
+{
+ repo_config_set_multivar(r, key, value, NULL, 0);
trace2_cmd_set_config(key, value);
}
@@ -3177,14 +3182,32 @@ void git_config_set_multivar_in_file(const char *config_filename,
int git_config_set_multivar_gently(const char *key, const char *value,
const char *value_pattern, unsigned flags)
{
- return git_config_set_multivar_in_file_gently(NULL, key, value, value_pattern,
+ return repo_config_set_multivar_gently(the_repository, key, value,
+ value_pattern, flags);
+}
+
+int repo_config_set_multivar_gently(struct repository *r, const char *key,
+ const char *value,
+ const char *value_pattern, unsigned flags)
+{
+ return git_config_set_multivar_in_file_gently(repo_git_path(r, "config"),
+ key, value, value_pattern,
flags);
}
void git_config_set_multivar(const char *key, const char *value,
const char *value_pattern, unsigned flags)
{
- git_config_set_multivar_in_file(NULL, key, value, value_pattern,
+ repo_config_set_multivar(the_repository, key, value,
+ value_pattern, flags);
+}
+
+void repo_config_set_multivar(struct repository *r, const char *key,
+ const char *value, const char *value_pattern,
+ unsigned flags)
+{
+ git_config_set_multivar_in_file(repo_git_path(r, "config"),
+ key, value, value_pattern,
flags);
}
diff --git a/config.h b/config.h
index f119de01309..5531fc018e3 100644
--- a/config.h
+++ b/config.h
@@ -258,6 +258,11 @@ int git_config_set_gently(const char *, const char *);
*/
void git_config_set(const char *, const char *);
+/**
+ * write config values to `.git/config`, takes a key/value pair as parameter.
+ */
+void repo_config_set(struct repository *, const char *, const char *);
+
int git_config_parse_key(const char *, char **, size_t *);
/*
@@ -281,6 +286,8 @@ int git_config_parse_key(const char *, char **, size_t *);
int git_config_set_multivar_gently(const char *, const char *, const char *, unsigned);
void git_config_set_multivar(const char *, const char *, const char *, unsigned);
+int repo_config_set_multivar_gently(struct repository *, const char *, const char *, const char *, unsigned);
+void repo_config_set_multivar(struct repository *, const char *, const char *, const char *, unsigned);
int git_config_set_multivar_in_file_gently(const char *, const char *, const char *, const char *, unsigned);
/**
--
gitgitgadget
next prev parent reply other threads:[~2021-12-20 15:57 UTC|newest]
Thread overview: 138+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-20 15:57 [PATCH 0/4] Sparse checkout: fix bug with worktree of bare repo Derrick Stolee via GitGitGadget
2021-12-20 15:57 ` [PATCH 1/4] setup: use a repository when upgrading format Derrick Stolee via GitGitGadget
2021-12-20 15:57 ` Derrick Stolee via GitGitGadget [this message]
2021-12-20 15:57 ` [PATCH 3/4] config: add repo_config_set_worktree_gently() Derrick Stolee via GitGitGadget
2021-12-20 17:32 ` Derrick Stolee
2021-12-21 0:01 ` Eric Sunshine
2021-12-21 5:59 ` Eric Sunshine
2021-12-21 13:41 ` Derrick Stolee
2021-12-21 5:53 ` Eric Sunshine
2021-12-21 13:45 ` Derrick Stolee
2021-12-21 23:29 ` Eric Sunshine
2021-12-20 15:57 ` [PATCH 4/4] sparse-checkout: use repo_config_set_worktree_gently() Derrick Stolee via GitGitGadget
2021-12-20 16:21 ` [PATCH 0/4] Sparse checkout: fix bug with worktree of bare repo Eric Sunshine
2021-12-20 17:34 ` Derrick Stolee
2021-12-21 6:10 ` Eric Sunshine
2021-12-21 19:14 ` [PATCH v2 0/5] " Derrick Stolee via GitGitGadget
2021-12-21 19:14 ` [PATCH v2 1/5] setup: use a repository when upgrading format Derrick Stolee via GitGitGadget
2021-12-21 19:14 ` [PATCH v2 2/5] config: make some helpers repo-aware Derrick Stolee via GitGitGadget
2021-12-21 19:14 ` [PATCH v2 3/5] worktree: add upgrade_to_worktree_config() Derrick Stolee via GitGitGadget
2021-12-22 0:45 ` Eric Sunshine
2021-12-28 15:03 ` Derrick Stolee
2021-12-28 16:58 ` Eric Sunshine
2021-12-28 17:03 ` Derrick Stolee
2021-12-22 5:38 ` Junio C Hamano
2021-12-28 15:13 ` Derrick Stolee
2021-12-21 19:14 ` [PATCH v2 4/5] config: add repo_config_set_worktree_gently() Derrick Stolee via GitGitGadget
2021-12-22 1:11 ` Eric Sunshine
2021-12-21 19:14 ` [PATCH v2 5/5] sparse-checkout: use repo_config_set_worktree_gently() Derrick Stolee via GitGitGadget
2021-12-22 5:48 ` Eric Sunshine
2021-12-22 6:05 ` [PATCH v2 0/5] Sparse checkout: fix bug with worktree of bare repo Eric Sunshine
2021-12-22 22:54 ` Elijah Newren
2021-12-27 7:15 ` Eric Sunshine
2021-12-27 7:34 ` Eric Sunshine
2021-12-27 20:16 ` Elijah Newren
2021-12-28 9:11 ` Eric Sunshine
2021-12-30 6:21 ` Eric Sunshine
2021-12-30 17:40 ` Elijah Newren
2021-12-27 19:35 ` Elijah Newren
2021-12-28 7:33 ` Eric Sunshine
2021-12-28 18:16 ` Elijah Newren
2021-12-30 6:40 ` Eric Sunshine
2021-12-30 18:38 ` Elijah Newren
2022-01-03 6:51 ` Eric Sunshine
2021-12-28 21:32 ` [PATCH v3 0/6] " Derrick Stolee via GitGitGadget
2021-12-28 21:32 ` [PATCH v3 1/6] setup: use a repository when upgrading format Derrick Stolee via GitGitGadget
2021-12-28 21:32 ` [PATCH v3 2/6] config: make some helpers repo-aware Derrick Stolee via GitGitGadget
2021-12-28 21:32 ` [PATCH v3 3/6] worktree: add 'init-worktree-config' subcommand Derrick Stolee via GitGitGadget
2021-12-29 6:48 ` Eric Sunshine
2021-12-30 8:41 ` Eric Sunshine
2021-12-30 17:29 ` Derrick Stolee
2022-01-03 6:38 ` Eric Sunshine
2021-12-28 21:32 ` [PATCH v3 4/6] config: add repo_config_set_worktree_gently() Derrick Stolee via GitGitGadget
2021-12-28 21:32 ` [PATCH v3 5/6] sparse-checkout: use repo_config_set_worktree_gently() Derrick Stolee via GitGitGadget
2021-12-30 9:01 ` Eric Sunshine
2021-12-28 21:32 ` [PATCH v3 6/6] worktree: copy sparse-checkout patterns and config on add Derrick Stolee via GitGitGadget
2021-12-29 6:37 ` Eric Sunshine
2021-12-29 17:31 ` Derrick Stolee
2021-12-29 19:51 ` Elijah Newren
2021-12-29 21:39 ` Derrick Stolee
2021-12-29 22:45 ` Elijah Newren
2021-12-30 8:16 ` Eric Sunshine
2021-12-30 8:01 ` Eric Sunshine
2021-12-29 9:39 ` [PATCH v3 0/6] Sparse checkout: fix bug with worktree of bare repo Elijah Newren
2021-12-29 17:38 ` Derrick Stolee
2021-12-30 7:41 ` Eric Sunshine
2021-12-30 7:40 ` Eric Sunshine
2021-12-30 17:41 ` Derrick Stolee
2021-12-30 19:29 ` Elijah Newren
2022-01-03 7:11 ` Eric Sunshine
2021-12-30 18:46 ` Elijah Newren
2022-01-25 18:42 ` [PATCH v4 0/5] " Derrick Stolee via GitGitGadget
2022-01-25 18:42 ` [PATCH v4 1/5] Documentation: add extensions.worktreeConfig details Derrick Stolee via GitGitGadget
2022-01-26 6:59 ` Bagas Sanjaya
2022-01-27 14:15 ` Derrick Stolee
2022-01-27 6:43 ` Elijah Newren
2022-01-27 14:17 ` Derrick Stolee
2022-01-25 18:42 ` [PATCH v4 2/5] worktree: create init_worktree_config() Derrick Stolee via GitGitGadget
2022-01-27 7:01 ` Elijah Newren
2022-01-25 18:42 ` [PATCH v4 3/5] config: add repo_config_set_worktree_gently() Derrick Stolee via GitGitGadget
2022-01-25 18:42 ` [PATCH v4 4/5] sparse-checkout: set worktree-config correctly Derrick Stolee via GitGitGadget
2022-01-27 7:15 ` Elijah Newren
2022-01-27 14:24 ` Derrick Stolee
2022-01-25 18:42 ` [PATCH v4 5/5] worktree: copy sparse-checkout patterns and config on add Derrick Stolee via GitGitGadget
2022-01-27 7:09 ` Elijah Newren
2022-01-27 7:20 ` [PATCH v4 0/5] Sparse checkout: fix bug with worktree of bare repo Elijah Newren
2022-01-27 14:29 ` Derrick Stolee
2022-01-31 15:00 ` [PATCH v5 " Derrick Stolee via GitGitGadget
2022-01-31 15:00 ` [PATCH v5 1/5] Documentation: add extensions.worktreeConfig details Derrick Stolee via GitGitGadget
2022-02-06 9:17 ` Eric Sunshine
2022-01-31 15:00 ` [PATCH v5 2/5] worktree: create init_worktree_config() Derrick Stolee via GitGitGadget
2022-02-06 9:32 ` Eric Sunshine
2022-01-31 15:00 ` [PATCH v5 3/5] config: add repo_config_set_worktree_gently() Derrick Stolee via GitGitGadget
2022-01-31 15:00 ` [PATCH v5 4/5] sparse-checkout: set worktree-config correctly Derrick Stolee via GitGitGadget
2022-02-06 10:21 ` Eric Sunshine
2022-01-31 15:00 ` [PATCH v5 5/5] worktree: copy sparse-checkout patterns and config on add Derrick Stolee via GitGitGadget
2022-02-06 10:36 ` Jean-Noël AVILA
2022-02-07 14:10 ` Derrick Stolee
2022-02-09 7:53 ` Jean-Noël Avila
2022-02-09 14:45 ` Derrick Stolee
2022-02-06 11:30 ` Eric Sunshine
2022-02-06 19:36 ` Eric Sunshine
2022-02-07 14:30 ` Derrick Stolee
2022-02-15 22:01 ` Eric Sunshine
2022-02-16 13:58 ` Derrick Stolee
2022-01-31 16:17 ` [PATCH v5 0/5] Sparse checkout: fix bug with worktree of bare repo Elijah Newren
2022-02-07 21:32 ` [PATCH v6 0/6] " Derrick Stolee via GitGitGadget
2022-02-07 21:32 ` [PATCH v6 1/6] Documentation: add extensions.worktreeConfig details Derrick Stolee via GitGitGadget
2022-02-08 22:20 ` Junio C Hamano
2022-02-09 2:34 ` Derrick Stolee
2022-02-09 17:19 ` Junio C Hamano
2022-02-09 17:26 ` Derrick Stolee
2022-02-09 17:51 ` Elijah Newren
2022-02-09 18:40 ` Junio C Hamano
2022-02-15 20:37 ` Eric Sunshine
2022-02-16 1:51 ` Junio C Hamano
2022-02-09 18:04 ` Elijah Newren
2022-02-09 18:41 ` Junio C Hamano
2022-02-07 21:32 ` [PATCH v6 2/6] worktree: create init_worktree_config() Derrick Stolee via GitGitGadget
2022-02-08 22:09 ` Junio C Hamano
2022-02-09 2:21 ` Derrick Stolee
2022-02-09 17:34 ` Junio C Hamano
2022-02-09 16:43 ` Elijah Newren
2022-02-07 21:33 ` [PATCH v6 3/6] config: add repo_config_set_worktree_gently() Derrick Stolee via GitGitGadget
2022-02-08 22:18 ` Junio C Hamano
2022-02-09 2:27 ` Derrick Stolee
2022-02-09 17:49 ` Junio C Hamano
2022-02-10 14:48 ` Derrick Stolee
2022-02-10 16:45 ` Junio C Hamano
2022-02-07 21:33 ` [PATCH v6 4/6] sparse-checkout: set worktree-config correctly Derrick Stolee via GitGitGadget
2022-02-07 21:33 ` [PATCH v6 5/6] worktree: copy sparse-checkout patterns and config on add Derrick Stolee via GitGitGadget
2022-02-15 22:23 ` Eric Sunshine
2022-02-07 21:33 ` [PATCH v6 6/6] config: make git_configset_get_string_tmp() private Derrick Stolee via GitGitGadget
2022-02-08 4:14 ` [PATCH v6 0/6] Sparse checkout: fix bug with worktree of bare repo Elijah Newren
2022-02-08 5:02 ` Eric Sunshine
2022-02-08 5:18 ` Elijah Newren
2022-02-08 5:42 ` Eric Sunshine
2022-02-16 0:56 ` Eric Sunshine
2022-02-08 14:33 ` Derrick Stolee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3b549770eb9133fc78739ecc4eaba274e138076f.1640015844.git.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=allred.sean@gmail.com \
--cc=derrickstolee@github.com \
--cc=dstolee@microsoft.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=stolee@gmail.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).