blob: d05c542d2cdace181ea72055c0f71db6b1afda42 [file] [log] [blame]
Heiko Voigt959b5452015-08-17 17:21:57 -07001#ifndef SUBMODULE_CONFIG_CACHE_H
2#define SUBMODULE_CONFIG_CACHE_H
3
4#include "hashmap.h"
Stefan Bellerea2fa5a2016-02-29 18:07:11 -08005#include "submodule.h"
Heiko Voigt959b5452015-08-17 17:21:57 -07006#include "strbuf.h"
7
8/*
9 * Submodule entry containing the information about a certain submodule
10 * in a certain revision.
11 */
12struct submodule {
13 const char *path;
14 const char *name;
15 const char *url;
16 int fetch_recurse;
17 const char *ignore;
Stefan Bellerb5944f32016-07-28 17:44:07 -070018 const char *branch;
Stefan Bellerea2fa5a2016-02-29 18:07:11 -080019 struct submodule_update_strategy update_strategy;
Heiko Voigt959b5452015-08-17 17:21:57 -070020 /* the sha1 blob id of the responsible .gitmodules file */
21 unsigned char gitmodules_sha1[20];
Stefan Beller37f52e92016-05-26 14:59:42 -070022 int recommend_shallow;
Heiko Voigt959b5452015-08-17 17:21:57 -070023};
24
Heiko Voigt027771f2015-08-17 17:22:00 -070025int parse_fetch_recurse_submodules_arg(const char *opt, const char *arg);
Mike Croweb33a15b2015-11-17 11:05:56 +000026int parse_push_recurse_submodules_arg(const char *opt, const char *arg);
Heiko Voigt851e18c2015-08-17 17:21:59 -070027int parse_submodule_config_option(const char *var, const char *value);
Heiko Voigt959b5452015-08-17 17:21:57 -070028const struct submodule *submodule_from_name(const unsigned char *commit_sha1,
29 const char *name);
30const struct submodule *submodule_from_path(const unsigned char *commit_sha1,
31 const char *path);
32void submodule_free(void);
33
34#endif /* SUBMODULE_CONFIG_H */