Top | ![]() |
![]() |
![]() |
![]() |
gint | (*GgitSubmoduleCallback) () |
GgitSubmodule * | ggit_submodule_ref () |
void | ggit_submodule_unref () |
void | ggit_submodule_save () |
GgitRepository * | ggit_submodule_get_owner () |
const gchar * | ggit_submodule_get_name () |
const gchar * | ggit_submodule_get_path () |
const gchar * | ggit_submodule_get_url () |
void | ggit_submodule_set_url () |
GgitOId * | ggit_submodule_get_index_id () |
GgitOId * | ggit_submodule_get_head_id () |
GgitOId * | ggit_submodule_get_workdir_id () |
GgitSubmoduleIgnore | ggit_submodule_get_ignore () |
GgitSubmoduleIgnore | ggit_submodule_set_ignore () |
GgitSubmoduleUpdate | ggit_submodule_get_update () |
GgitSubmoduleUpdate | ggit_submodule_set_update () |
gboolean | ggit_submodule_get_fetch_recurse () |
gboolean | ggit_submodule_set_fetch_recurse () |
void | ggit_submodule_init () |
void | ggit_submodule_sync () |
void | ggit_submodule_reload () |
GgitSubmoduleStatus | ggit_submodule_get_status () |
GgitSubmodule | |
enum | GgitSubmoduleIgnore |
enum | GgitSubmoduleStatus |
enum | GgitSubmoduleUpdate |
GBoxed ╰── GgitSubmodule GEnum ├── GgitSubmoduleIgnore ╰── GgitSubmoduleUpdate GFlags ╰── GgitSubmoduleStatus
gint (*GgitSubmoduleCallback) (GgitSubmodule *submodule
,const gchar *name
,gpointer user_data
);
The type of the callback functions for retrieving the submodules
in a GgitRepository. See ggit_repository_submodule_foreach()
.
GgitSubmodule *
ggit_submodule_ref (GgitSubmodule *submodule
);
Atomically increments the reference count of submodule
by one.
This function is MT-safe and may be called from any thread.
void
ggit_submodule_unref (GgitSubmodule *submodule
);
Atomically decrements the reference count of submodule
by one.
If the reference count drops to 0, remote
is freed.
void ggit_submodule_save (GgitSubmodule *submodule
,GError **error
);
Writes submodule settings to .gitmodules file.
Commits any in-memory changes to the submodule to the gitmodules
file on disk. You may also be interested in ggit_submodule_init()
which
writes submodule info to ".git/config" (which is better for local changes
to submodule settings) and/or ggit_submodule_sync()
which writes
settings about remotes to the actual submodule repository.
GgitRepository *
ggit_submodule_get_owner (GgitSubmodule *submodule
);
Gets the containing repository for a submodule.
const gchar *
ggit_submodule_get_name (GgitSubmodule *submodule
);
Gets the name of the submodule from .gitmodules.
const gchar *
ggit_submodule_get_path (GgitSubmodule *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()
.
const gchar *
ggit_submodule_get_url (GgitSubmodule *submodule
);
Gets the url for the submodule or NULL
if the submodule has been deleted
but not yet committed.
void ggit_submodule_set_url (GgitSubmodule *submodule
,const gchar *url
,GError **error
);
Sets the URL for the submodule.
This sets the URL in memory for the submodule. This will be used for any following submodule actions while this submodule data is in memory.
After calling this, you may wish to call ggit_submodule_save()
to write
the changes back to the ".gitmodules" file and ggit_submodule_sync()
to
write the changes to the checked out submodule repository.
GgitOId *
ggit_submodule_get_index_id (GgitSubmodule *submodule
);
Gets the OID for the submodule in the index or NULL
if there is no index.
GgitOId *
ggit_submodule_get_workdir_id (GgitSubmodule *submodule
);
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.
GgitSubmoduleIgnore
ggit_submodule_get_ignore (GgitSubmodule *submodule
);
Gets a GgitSubmoduleIgnore. See see gitmodules(5) ignore.
GgitSubmoduleIgnore ggit_submodule_set_ignore (GgitSubmodule *submodule
,GgitSubmoduleIgnore ignore
);
Sets the ignore rule in memory for the submodule. This will be used
for any following actions (such as ggit_submodule_status()
) while the
submodule is in memory. You should call ggit_submodule_save()
if you
want to persist the new ignore role.
Calling this again with GGIT_SUBMODULE_IGNORE_DEFAULT or calling
ggit_submodule_reload()
will revert the rule to the value that was in the
original config.
GgitSubmoduleUpdate
ggit_submodule_get_update (GgitSubmodule *submodule
);
Gets a GgitSubmoduleUpdate. See see gitmodules(5) update.
GgitSubmoduleUpdate ggit_submodule_set_update (GgitSubmodule *submodule
,GgitSubmoduleUpdate update
);
Sets the update rule in memory for the submodule. You should call
ggit_submodule_save()
if you want to persist the new update rule.
Calling this again with GGIT_SUBMODULE_UPDATE_DEFAULT or calling
ggit_submodule_reload()
will revert the rule to the value that was in the
original config.
gboolean
ggit_submodule_get_fetch_recurse (GgitSubmodule *submodule
);
Gets whether to fetch recursively. See see gitmodules(5) fetchRecurseSubmodules.
gboolean ggit_submodule_set_fetch_recurse (GgitSubmodule *submodule
,gboolean fetch_recurse
);
Sets the submodule.'name'.fetchRecurseSubmodules value for
the submodule. You should call ggit_submodule_save()
if you want
to persist the new value.
void ggit_submodule_init (GgitSubmodule *submodule
,gboolean overwrite
,GError **error
);
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.
void ggit_submodule_sync (GgitSubmodule *submodule
,GError **error
);
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.
void ggit_submodule_reload (GgitSubmodule *submodule
,gboolean force
,GError **error
);
Rereads submodule info from config, index, and HEAD. Call this if you have reason to believe that it has changed.
GgitSubmoduleStatus ggit_submodule_get_status (GgitSubmodule *submodule
,GError **error
);
Gets the status for a submodule.
This looks at a submodule and tries to determine the status. It
will return a combination of the GGIT_SUBMODULE_STATUS
values.
How deeply it examines the working directory to do this will depend
on the GgitSubmoduleIgnore value for the submodule - which can be
set either temporarily or permanently with ggit_submodule_set_ignore()
.