Matheus Tavares Bernardino [off-list ref] writes:
Hi, Emily
I'm not familiar enough with this code to give a full review and I
imagine you probably want comments more focused on the design level,
while this is an RFC, but here are some small nitpicks I found while
reading the patch. I Hope it helps :)
On Thu, Apr 8, 2021 at 8:39 PM Emily Shaffer [off-list ref] wrote:
quoted
diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt
index 4b4cc5c5e8..a33136fb08 100644
--- a/Documentation/git-config.txt
+++ b/Documentation/git-config.txt
@@ -48,7 +48,7 @@ unset an existing `--type` specifier with `--no-type`.
When reading, the values are read from the system, global and
repository local configuration files by default, and options
-`--system`, `--global`, `--local`, `--worktree` and
+`--system`, `--global`, `--superproject`, `--local`, `--worktree` and
`--file <filename>` can be used to tell the command to read from only
that location (see <<FILES>>).
@@ -127,6 +127,17 @@ rather than from all available files.
+
See also <<FILES>>.
+--superproject::
+ For writing options: write to the superproject's
+ `.git/config.superproject` file, even if run from a submodule of that
+ superproject.
Hmm, I wonder what happens if a repo is both a submodule and a
superproject (i.e. in case of nested submodules).
Another thing I am not sure about the design is that a repository
can be shared as a submodule by more than one superprojects. The
superprojects may want their submodule checkouts at different
submodule commits, but that is something doable by having multiple
worktrees connected to a single submodule repository.
I think our design principle has been that it is perfectly OK for a
superproject to be in total control if its submodules, but
submodules should not even be aware of being used as a submodule by
a superproject, and that allows a submodule repository to be shared
by multiple superprojects. As "write to the superproject's X file"
requires a submodule to know who THE superproject of itself is, this
feature itself (not the implementation) feels somewhat iffy.