Browse Source

config: add config_from_gitmodules

Add 'config_from_gitmodules()' function which can be used by 'fetch' and
'update_clone' in order to maintain backwards compatibility with
configuration being stored in .gitmodules' since a future patch will
remove reading these values in the submodule-config.

This function should not be used anywhere other than in 'fetch' and
'update_clone'.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Brandon Williams 8 years ago committed by Junio C Hamano
parent
commit
b22e51cb26
  1. 17
      config.c
  2. 10
      config.h

17
config.c

@ -2053,6 +2053,23 @@ int git_config_get_pathname(const char *key, const char **dest) @@ -2053,6 +2053,23 @@ int git_config_get_pathname(const char *key, const char **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 ret = git_config_get_string_const(key, output);

10
config.h

@ -187,6 +187,16 @@ extern int repo_config_get_maybe_bool(struct repository *repo, @@ -187,6 +187,16 @@ extern int repo_config_get_maybe_bool(struct repository *repo,
extern int repo_config_get_pathname(struct repository *repo,
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 const struct string_list *git_config_get_value_multi(const char *key);
extern void git_config_clear(void);

Loading…
Cancel
Save