replacing sb/submodule-config-cleanup v4: * renamed commit_or_tree to treeish_name * added a test with a tag * "it will overwrite" (removed the spurious "be"). v3: diff to current origin/sb/submodule-config-cleanup: diff --git a/Documentation/technical/api-submodule-config.txt b/Documentation/technical/api-submodule-config.txt index 1df7a827ff..e06a3fd2de 100644 --- a/Documentation/technical/api-submodule-config.txt +++ b/Documentation/technical/api-submodule-config.txt @@ -49,17 +49,17 @@ Functions `const struct submodule *submodule_from_path(const unsigned char *commit_or_tree, const char *path)`:: - Lookup values for one submodule by its commit_sha1 and path. + Lookup values for one submodule by its commit_or_tree and path. `const struct submodule *submodule_from_name(const unsigned char *commit_or_tree, const char *name)`:: The same as above but lookup by name. Whenever a submodule configuration is parsed in `parse_submodule_config_option` -via e.g. `gitmodules_config()`, it will be overwrite the entry with the sha1 -zeroed out. So in the normal case, when HEAD:.gitmodules is parsed first and -then overlayed with the repository configuration, the null_sha1 entry contains -the local configuration of a submodule (e.g. consolidated values from local git +via e.g. `gitmodules_config()`, it will be overwrite the null_sha1 entry. +So in the normal case, when HEAD:.gitmodules is parsed first and then overlayed +with the repository configuration, the null_sha1 entry contains the local +configuration of a submodule (e.g. consolidated values from local git configuration and the .gitmodules file in the worktree). For an example usage see test-submodule-config.c. diff --git a/submodule-config.c b/submodule-config.c index 4c5f5d074b..d88a746c56 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -448,7 +448,6 @@ static const struct submodule *config_from(struct submodule_cache *cache, /* fill the submodule config into the cache */ parameter.cache = cache; - // todo: get the actual tree here: parameter.commit_or_tree = commit_or_tree; parameter.gitmodules_sha1 = sha1; parameter.overwrite = 0; v2: addressed Jacobs concerns in patch2, fixing all occurrences of commit_sha1. Thanks, Stefan interdiff to v1: diff --git a/Documentation/technical/api-submodule-config.txt b/Documentation/technical/api-submodule-config.txt index 1df7a827ff..a91c1f085e 100644 --- a/Documentation/technical/api-submodule-config.txt +++ b/Documentation/technical/api-submodule-config.txt @@ -49,7 +49,7 @@ Functions `const struct submodule *submodule_from_path(const unsigned char *commit_or_tree, const char *path)`:: - Lookup values for one submodule by its commit_sha1 and path. + Lookup values for one submodule by its commit_or_tree and path. `const struct submodule *submodule_from_name(const unsigned char *commit_or_tree, const char *name)`:: v1: A small series that would have helped me understand the submodule config once again. Thanks, Stefan Stefan Beller (3): submodule config: inline config_from_{name, path} submodule-config: rename commit_sha1 to treeish_name submodule-config: clarify parsing of null_sha1 element Documentation/technical/api-submodule-config.txt | 14 ++++-- submodule-config.c | 58 ++++++++++-------------- submodule-config.h | 4 +- t/t7411-submodule-config.sh | 14 ++++++ 4 files changed, 48 insertions(+), 42 deletions(-) -- 2.11.0.rc2.4.g3396b6f.dirty