From: Junio C Hamano <gitster@pobox.com>
To: Glen Choo <chooglen@google.com>
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Glen Choo via GitGitGadget" <gitgitgadget@gmail.com>,
git@vger.kernel.org, "Jonathan Tan" <jonathantanmy@google.com>,
"Emily Shaffer" <nasamuffin@google.com>,
"Jeff King" <peff@peff.net>,
"Derrick Stolee" <derrickstolee@github.com>
Subject: Re: [PATCH 0/6] [RFC] config.c: use struct for config reading state
Date: Tue, 07 Mar 2023 11:36:49 -0800 [thread overview]
Message-ID: <xmqqbkl4xsj2.fsf@gitster.g> (raw)
In-Reply-To: <kl6lfsagifpc.fsf@chooglen-macbookpro.roam.corp.google.com> (Glen Choo's message of "Tue, 07 Mar 2023 10:22:55 -0800")
Glen Choo <chooglen@google.com> writes:
> ... In the spirit of
> libification, this feels like a kludge, though, since we'd be reverting
> to using "struct repository" for more things instead of using more
> well-scoped interfaces.
If you include "populate from system-wide, per-user, and repository
specific configuration files" as part of the API being libified,
your configsets cannot avoid being tied to a repository. But I do
not think the reader needs to be in the repository.
> IMO a better future for the config_set API would
> be to move it into configset.c or something, where only users who want
> the low level API would use it and everyone else would just pretend it
> doesn't exist.
Isn't the use of the reader object purely transitory while you
populate the keys and values in a configset from a single file? At
the layer to read and populate a configset from a single "source"
file, you still do not need repository.
Only when you say "I have a 'repo' instance and I want to read the
config variables from appropriate places", you call such a "read and
populate configset from a single source" helper three or four times
to populate repo->config. Once a configset is populated, it or its
contents do not depend on the reader instance to function, so I do
not see how it benefits to have the reader in the repository object.
next prev parent reply other threads:[~2023-03-07 19:46 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-01 0:38 [PATCH 0/6] [RFC] config.c: use struct for config reading state Glen Choo via GitGitGadget
2023-03-01 0:38 ` [PATCH 1/6] config.c: plumb config_source through static fns Glen Choo via GitGitGadget
2023-03-03 18:02 ` Junio C Hamano
2023-03-01 0:38 ` [PATCH 2/6] config.c: don't assign to "cf" directly Glen Choo via GitGitGadget
2023-03-01 0:38 ` [PATCH 3/6] config.c: create config_reader and the_reader Glen Choo via GitGitGadget
2023-03-03 18:05 ` Junio C Hamano
2023-03-01 0:38 ` [PATCH 4/6] config.c: plumb the_reader through callbacks Glen Choo via GitGitGadget
2023-03-08 9:54 ` Ævar Arnfjörð Bjarmason
2023-03-08 18:00 ` Glen Choo
2023-03-08 18:07 ` Junio C Hamano
2023-03-01 0:38 ` [PATCH 5/6] config.c: remove current_config_kvi Glen Choo via GitGitGadget
2023-03-06 20:12 ` Calvin Wan
2023-03-01 0:38 ` [PATCH 6/6] config.c: remove current_parsing_scope Glen Choo via GitGitGadget
2023-03-06 19:57 ` [PATCH 0/6] [RFC] config.c: use struct for config reading state Jonathan Tan
2023-03-06 21:45 ` Glen Choo
2023-03-06 22:38 ` Jonathan Tan
2023-03-08 10:32 ` Ævar Arnfjörð Bjarmason
2023-03-08 23:09 ` Glen Choo
2023-03-07 11:57 ` Ævar Arnfjörð Bjarmason
2023-03-07 18:22 ` Glen Choo
2023-03-07 18:36 ` Ævar Arnfjörð Bjarmason
2023-03-07 19:36 ` Junio C Hamano [this message]
2023-03-07 22:53 ` Glen Choo
2023-03-08 9:17 ` Ævar Arnfjörð Bjarmason
2023-03-08 23:18 ` Glen Choo
2023-03-16 0:11 ` [PATCH v2 0/8] " Glen Choo via GitGitGadget
2023-03-16 0:11 ` [PATCH v2 1/8] config.c: plumb config_source through static fns Glen Choo via GitGitGadget
2023-03-16 21:16 ` Jonathan Tan
2023-03-16 0:11 ` [PATCH v2 2/8] config.c: don't assign to "cf_global" directly Glen Choo via GitGitGadget
2023-03-16 21:18 ` Jonathan Tan
2023-03-16 21:31 ` Junio C Hamano
2023-03-16 22:56 ` Glen Choo
2023-03-16 0:11 ` [PATCH v2 3/8] config.c: create config_reader and the_reader Glen Choo via GitGitGadget
2023-03-16 21:22 ` Jonathan Tan
2023-03-16 0:11 ` [PATCH v2 4/8] config.c: plumb the_reader through callbacks Glen Choo via GitGitGadget
2023-03-16 0:11 ` [PATCH v2 5/8] config.c: remove current_config_kvi Glen Choo via GitGitGadget
2023-03-16 0:11 ` [PATCH v2 6/8] config.c: remove current_parsing_scope Glen Choo via GitGitGadget
2023-03-16 0:11 ` [PATCH v2 7/8] config: report cached filenames in die_bad_number() Glen Choo via GitGitGadget
2023-03-16 22:22 ` Jonathan Tan
2023-03-16 23:05 ` Glen Choo
2023-03-16 0:11 ` [PATCH v2 8/8] config.c: rename "struct config_source cf" Glen Choo via GitGitGadget
2023-03-16 0:15 ` [PATCH v2 0/8] config.c: use struct for config reading state Glen Choo
2023-03-16 22:29 ` Jonathan Tan
2023-03-17 5:01 ` [RFC PATCH 0/5] bypass config.c global state with configset Ævar Arnfjörð Bjarmason
2023-03-17 5:01 ` [RFC PATCH 1/5] config.h: move up "struct key_value_info" Ævar Arnfjörð Bjarmason
2023-03-17 5:01 ` [RFC PATCH 2/5] config.c: use "enum config_origin_type", not "int" Ævar Arnfjörð Bjarmason
2023-03-17 5:01 ` [RFC PATCH 3/5] config API: add a config_origin_type_name() helper Ævar Arnfjörð Bjarmason
2023-03-17 5:01 ` [RFC PATCH 4/5] config.c: refactor configset_iter() Ævar Arnfjörð Bjarmason
2023-03-17 5:01 ` [RFC PATCH 5/5] config API: add and use a repo_config_kvi() Ævar Arnfjörð Bjarmason
2023-03-17 17:17 ` Junio C Hamano
2023-03-17 20:59 ` Jonathan Tan
2023-03-17 16:21 ` [RFC PATCH 0/5] bypass config.c global state with configset Junio C Hamano
2023-03-17 16:28 ` Glen Choo
2023-03-17 19:20 ` Glen Choo
2023-03-17 23:32 ` Glen Choo
2023-03-29 11:53 ` Ævar Arnfjörð Bjarmason
2023-03-28 17:51 ` [PATCH v3 0/8] config.c: use struct for config reading state Glen Choo via GitGitGadget
2023-03-28 17:51 ` [PATCH v3 1/8] config.c: plumb config_source through static fns Glen Choo via GitGitGadget
2023-03-28 17:51 ` [PATCH v3 2/8] config.c: don't assign to "cf_global" directly Glen Choo via GitGitGadget
2023-03-28 17:51 ` [PATCH v3 3/8] config.c: create config_reader and the_reader Glen Choo via GitGitGadget
2023-03-29 10:41 ` Ævar Arnfjörð Bjarmason
2023-03-29 18:57 ` Junio C Hamano
2023-03-29 20:02 ` Glen Choo
2023-03-30 17:51 ` Glen Choo
2023-03-28 17:51 ` [PATCH v3 4/8] config.c: plumb the_reader through callbacks Glen Choo via GitGitGadget
2023-03-28 17:51 ` [PATCH v3 5/8] config.c: remove current_config_kvi Glen Choo via GitGitGadget
2023-03-28 17:51 ` [PATCH v3 6/8] config.c: remove current_parsing_scope Glen Choo via GitGitGadget
2023-03-28 17:51 ` [PATCH v3 7/8] config: report cached filenames in die_bad_number() Glen Choo via GitGitGadget
2023-03-28 17:51 ` [PATCH v3 8/8] config.c: rename "struct config_source cf" Glen Choo via GitGitGadget
2023-03-28 18:00 ` [PATCH v3 0/8] config.c: use struct for config reading state Glen Choo
2023-03-28 20:14 ` Junio C Hamano
2023-03-28 21:24 ` Glen Choo
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=xmqqbkl4xsj2.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=chooglen@google.com \
--cc=derrickstolee@github.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=jonathantanmy@google.com \
--cc=nasamuffin@google.com \
--cc=peff@peff.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.