Description [src]

struct GgitSubmodule {
  /* No available fields */

Represents a git submodule.

Instance methods


Gets whether to fetch recursively. See see gitmodules(5) fetchRecurseSubmodules.

No description available.

Gets a GgitSubmoduleIgnore. See see gitmodules(5) ignore.


Gets the OID for the submodule in the index or NULL if there is no index.


Gets the name of the submodule from .gitmodules.


Gets the containing repository for a submodule.


Gets the path to the submodule from the repo working directory. It is almost always the same as the name. See ggit_submodule_get_name().


Gets a GgitSubmoduleUpdate. See see gitmodules(5) update.


Gets the url for the submodule or NULL if the submodule has been deleted but not yet committed.


Gets the OID for the submodule in the current working directory. Corresponds to looking up ‘HEAD’ in the checked out submodule. If there are pending changes in the index or anything else, this won’t notice that. You should call ggit_submodule_status() for a more complete picture about the state of the working directory.


Just like “git submodule init”, this copies information about the submodule into “.git/config”. You can use the accessor functions above to alter the in-memory git_submodule object and control what is written to the config, overriding what is in .gitmodules.


Open the repository for a submodule. Multiple calls to this function will return distinct GgitRepository objects. Only submodules which are checked out in the working directory can be opened.


Atomically increments the reference count of submodule by one. This function is MT-safe and may be called from any thread.


Rereads submodule info from config, index, and HEAD. Call this if you have reason to believe that it has changed.


Copies the information about the submodules URL into the checked out submodule config, acting like “git submodule sync”. This is useful if you have altered the URL for the submodule (or it has been altered by a fetch of upstream changes) and you need to update your local repo.


Atomically decrements the reference count of submodule by one. If the reference count drops to 0, remote is freed.


Update a submodule. This will clone a missing submodule and checkout the subrepository to the commit specified in the index of the containing repository. If the submodule repository doesn’t contain the target commit (e.g. because fetchRecurseSubmodules isn’t set), then the submodule is fetched using the fetch options supplied in options.