config: move config_from_gitmodules to submodule-config.c
The .gitmodules file is not meant as a place to store arbitrary configuration to distribute with the repository. Move config_from_gitmodules() out of config.c and into submodule-config.c to make it even clearer that it is not a mechanism to retrieve arbitrary configuration from the .gitmodules file. Signed-off-by: Antonio Ospite <ao2@ao2.it> Acked-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
ed843436dd
commit
ad136370b2
17
config.c
17
config.c
@ -2172,23 +2172,6 @@ int git_config_get_pathname(const char *key, const char **dest)
|
|||||||
return repo_config_get_pathname(the_repository, key, dest);
|
return repo_config_get_pathname(the_repository, key, dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Note: This function exists solely to maintain backward compatibility with
|
|
||||||
* 'fetch' and 'update_clone' storing configuration in '.gitmodules' and should
|
|
||||||
* NOT be used anywhere else.
|
|
||||||
*
|
|
||||||
* Runs the provided config function on the '.gitmodules' file found in the
|
|
||||||
* working directory.
|
|
||||||
*/
|
|
||||||
void config_from_gitmodules(config_fn_t fn, void *data)
|
|
||||||
{
|
|
||||||
if (the_repository->worktree) {
|
|
||||||
char *file = repo_worktree_path(the_repository, GITMODULES_FILE);
|
|
||||||
git_config_from_file(fn, file, data);
|
|
||||||
free(file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int git_config_get_expiry(const char *key, const char **output)
|
int git_config_get_expiry(const char *key, const char **output)
|
||||||
{
|
{
|
||||||
int ret = git_config_get_string_const(key, output);
|
int ret = git_config_get_string_const(key, output);
|
||||||
|
10
config.h
10
config.h
@ -215,16 +215,6 @@ extern int repo_config_get_maybe_bool(struct repository *repo,
|
|||||||
extern int repo_config_get_pathname(struct repository *repo,
|
extern int repo_config_get_pathname(struct repository *repo,
|
||||||
const char *key, const char **dest);
|
const char *key, const char **dest);
|
||||||
|
|
||||||
/*
|
|
||||||
* Note: This function exists solely to maintain backward compatibility with
|
|
||||||
* 'fetch' and 'update_clone' storing configuration in '.gitmodules' and should
|
|
||||||
* NOT be used anywhere else.
|
|
||||||
*
|
|
||||||
* Runs the provided config function on the '.gitmodules' file found in the
|
|
||||||
* working directory.
|
|
||||||
*/
|
|
||||||
extern void config_from_gitmodules(config_fn_t fn, void *data);
|
|
||||||
|
|
||||||
extern int git_config_get_value(const char *key, const char **value);
|
extern int git_config_get_value(const char *key, const char **value);
|
||||||
extern const struct string_list *git_config_get_value_multi(const char *key);
|
extern const struct string_list *git_config_get_value_multi(const char *key);
|
||||||
extern void git_config_clear(void);
|
extern void git_config_clear(void);
|
||||||
|
@ -671,3 +671,20 @@ void submodule_free(struct repository *r)
|
|||||||
if (r->submodule_cache)
|
if (r->submodule_cache)
|
||||||
submodule_cache_clear(r->submodule_cache);
|
submodule_cache_clear(r->submodule_cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note: This function exists solely to maintain backward compatibility with
|
||||||
|
* 'fetch' and 'update_clone' storing configuration in '.gitmodules' and should
|
||||||
|
* NOT be used anywhere else.
|
||||||
|
*
|
||||||
|
* Runs the provided config function on the '.gitmodules' file found in the
|
||||||
|
* working directory.
|
||||||
|
*/
|
||||||
|
void config_from_gitmodules(config_fn_t fn, void *data)
|
||||||
|
{
|
||||||
|
if (the_repository->worktree) {
|
||||||
|
char *file = repo_worktree_path(the_repository, GITMODULES_FILE);
|
||||||
|
git_config_from_file(fn, file, data);
|
||||||
|
free(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define SUBMODULE_CONFIG_CACHE_H
|
#define SUBMODULE_CONFIG_CACHE_H
|
||||||
|
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
#include "config.h"
|
||||||
#include "hashmap.h"
|
#include "hashmap.h"
|
||||||
#include "submodule.h"
|
#include "submodule.h"
|
||||||
#include "strbuf.h"
|
#include "strbuf.h"
|
||||||
@ -55,4 +56,14 @@ void submodule_free(struct repository *r);
|
|||||||
*/
|
*/
|
||||||
int check_submodule_name(const char *name);
|
int check_submodule_name(const char *name);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note: This function exists solely to maintain backward compatibility with
|
||||||
|
* 'fetch' and 'update_clone' storing configuration in '.gitmodules' and should
|
||||||
|
* NOT be used anywhere else.
|
||||||
|
*
|
||||||
|
* Runs the provided config function on the '.gitmodules' file found in the
|
||||||
|
* working directory.
|
||||||
|
*/
|
||||||
|
extern void config_from_gitmodules(config_fn_t fn, void *data);
|
||||||
|
|
||||||
#endif /* SUBMODULE_CONFIG_H */
|
#endif /* SUBMODULE_CONFIG_H */
|
||||||
|
Reference in New Issue
Block a user