object: remove "used" field from struct object
[gitweb.git] / repository.h
index 3a41568aa06698cda7b4819d1a0110b9d95709f4..417787f3ef02e871406fa81d1a1bebcdac6e5f13 100644 (file)
@@ -3,6 +3,7 @@
 
 struct config_set;
 struct index_state;
+struct submodule_cache;
 
 struct repository {
        /* Environment */
@@ -42,6 +43,13 @@ struct repository {
         */
        char *worktree;
 
+       /*
+        * Path from the root of the top-level superproject down to this
+        * repository.  This is only non-NULL if the repository is initialized
+        * as a submodule of another repository.
+        */
+       char *submodule_prefix;
+
        /* Subsystems */
        /*
         * Repository's config which contains key-value pairs from the usual
@@ -50,6 +58,9 @@ struct repository {
         */
        struct config_set *config;
 
+       /* Repository's submodule config as defined by '.gitmodules' */
+       struct submodule_cache *submodule_cache;
+
        /*
         * Repository's in-memory index.
         * 'repo_read_index()' can be used to populate 'index'.
@@ -76,6 +87,9 @@ extern struct repository *the_repository;
 extern void repo_set_gitdir(struct repository *repo, const char *path);
 extern void repo_set_worktree(struct repository *repo, const char *path);
 extern int repo_init(struct repository *repo, const char *gitdir, const char *worktree);
+extern int repo_submodule_init(struct repository *submodule,
+                              struct repository *superproject,
+                              const char *path);
 extern void repo_clear(struct repository *repo);
 
 extern int repo_read_index(struct repository *repo);