1#ifndef SUBMODULE_CONFIG_CACHE_H
2#define SUBMODULE_CONFIG_CACHE_H
3
4#include "hashmap.h"
5#include "strbuf.h"
6
7/*
8 * Submodule entry containing the information about a certain submodule
9 * in a certain revision.
10 */
11struct submodule {
12 const char *path;
13 const char *name;
14 const char *url;
15 int fetch_recurse;
16 const char *ignore;
17 /* the sha1 blob id of the responsible .gitmodules file */
18 unsigned char gitmodules_sha1[20];
19};
20
21int parse_fetch_recurse_submodules_arg(const char *opt, const char *arg);
22int parse_push_recurse_submodules_arg(const char *opt, const char *arg);
23int parse_submodule_config_option(const char *var, const char *value);
24const struct submodule *submodule_from_name(const unsigned char *commit_sha1,
25 const char *name);
26const struct submodule *submodule_from_path(const unsigned char *commit_sha1,
27 const char *path);
28void submodule_free(void);
29
30#endif /* SUBMODULE_CONFIG_H */