submodule: add repo_read_gitmodules
Teach the repo object to be able to populate the submodule_cache by reading the repository's gitmodules file. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
bf12fcdf5e
commit
69aba5329e
15
submodule.c
15
submodule.c
@ -1,4 +1,5 @@
|
|||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
#include "repository.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "submodule-config.h"
|
#include "submodule-config.h"
|
||||||
#include "submodule.h"
|
#include "submodule.h"
|
||||||
@ -255,6 +256,20 @@ void gitmodules_config(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int gitmodules_cb(const char *var, const char *value, void *data)
|
||||||
|
{
|
||||||
|
struct repository *repo = data;
|
||||||
|
return submodule_config_option(repo, var, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void repo_read_gitmodules(struct repository *repo)
|
||||||
|
{
|
||||||
|
char *gitmodules_path = repo_worktree_path(repo, ".gitmodules");
|
||||||
|
|
||||||
|
git_config_from_file(gitmodules_cb, gitmodules_path, repo);
|
||||||
|
free(gitmodules_path);
|
||||||
|
}
|
||||||
|
|
||||||
void gitmodules_config_sha1(const unsigned char *commit_sha1)
|
void gitmodules_config_sha1(const unsigned char *commit_sha1)
|
||||||
{
|
{
|
||||||
struct strbuf rev = STRBUF_INIT;
|
struct strbuf rev = STRBUF_INIT;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#ifndef SUBMODULE_H
|
#ifndef SUBMODULE_H
|
||||||
#define SUBMODULE_H
|
#define SUBMODULE_H
|
||||||
|
|
||||||
|
struct repository;
|
||||||
struct diff_options;
|
struct diff_options;
|
||||||
struct argv_array;
|
struct argv_array;
|
||||||
struct oid_array;
|
struct oid_array;
|
||||||
@ -46,6 +47,7 @@ int option_parse_recurse_submodules_worktree_updater(const struct option *opt,
|
|||||||
const char *arg, int unset);
|
const char *arg, int unset);
|
||||||
void load_submodule_cache(void);
|
void load_submodule_cache(void);
|
||||||
extern void gitmodules_config(void);
|
extern void gitmodules_config(void);
|
||||||
|
extern void repo_read_gitmodules(struct repository *repo);
|
||||||
extern void gitmodules_config_sha1(const unsigned char *commit_sha1);
|
extern void gitmodules_config_sha1(const unsigned char *commit_sha1);
|
||||||
extern int is_submodule_initialized(const char *path);
|
extern int is_submodule_initialized(const char *path);
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user