GgitSubmodule

GgitSubmodule

Object Hierarchy

    GBoxed
    ╰── GgitSubmodule

Description

Functions

GgitSubmoduleCallback ()

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().

Parameters

submodule

a GgitSubmodule.

 

name

the name of the submodule.

 

user_data

user-supplied data.

[closure]

Returns

0 to go for the next submodule or a GgitError in case there was an error.


ggit_submodule_ref ()

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.

Parameters

submodule

a GgitSubmodule.

 

Returns

the passed in GgitSubmodule.

[transfer none]


ggit_submodule_unref ()

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.

Parameters

submodule

a GgitSubmodule.

 

ggit_submodule_get_owner ()

GgitRepository *
ggit_submodule_get_owner (GgitSubmodule *submodule);

Gets the containing repository for a submodule.

Parameters

submodule

a GgitSubmodule.

 

Returns

the containing repository for a submodule.

[transfer full]


ggit_submodule_get_name ()

const gchar *
ggit_submodule_get_name (GgitSubmodule *submodule);

Gets the name of the submodule from .gitmodules.

Parameters

submodule

a GgitSubmodule.

 

Returns

the name of the submodule from .gitmodules.


ggit_submodule_get_path ()

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().

Parameters

submodule

a GgitSubmodule.

 

Returns

the path to the submodule from the repo working directory.


ggit_submodule_get_url ()

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.

Parameters

submodule

a GgitSubmodule.

 

Returns

the url for the submodule.


ggit_submodule_get_index_id ()

GgitOId *
ggit_submodule_get_index_id (GgitSubmodule *submodule);

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

Parameters

submodule

a GgitSubmodule.

 

Returns

the OID for the submodule in the index or NULL.

[transfer full][allow-none]


ggit_submodule_get_head_id ()

GgitOId *
ggit_submodule_get_head_id (GgitSubmodule *submodule);

ggit_submodule_get_workdir_id ()

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.

Parameters

submodule

a GgitSubmodule.

 

Returns

the OID for the submodule in the current working directory or NULL.

[transfer full][allow-none]


ggit_submodule_get_ignore ()

GgitSubmoduleIgnore
ggit_submodule_get_ignore (GgitSubmodule *submodule);

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

Parameters

submodule

a GgitSubmodule.

 

Returns

the GgitSubmoduleIgnore.


ggit_submodule_get_update ()

GgitSubmoduleUpdate
ggit_submodule_get_update (GgitSubmodule *submodule);

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

Parameters

submodule

a GgitSubmodule.

 

Returns

the GgitSubmoduleUpdate.


ggit_submodule_get_fetch_recurse ()

gboolean
ggit_submodule_get_fetch_recurse (GgitSubmodule *submodule);

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

Parameters

submodule

a GgitSubmodule.

 

Returns

whether or not fetch recursively.


ggit_submodule_init ()

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.

Parameters

submodule

a GgitSubmodule.

 

overwrite

forces existing entries to be updated.

 

error

a GError for error reporting, or NULL.

 

ggit_submodule_sync ()

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.

Parameters

submodule

a GgitSubmodule.

 

error

a GError for error reporting, or NULL.

 

ggit_submodule_reload ()

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.

Parameters

submodule

a GgitSubmodule.

 

force

reload even if the data doesn't seem out of date.

 

error

a GError for error reporting, or NULL.

 

Types and Values

GgitSubmodule

typedef struct _GgitSubmodule GgitSubmodule;

Represents a git submodule.


enum GgitSubmoduleIgnore

Describes which submodules should be ignored.

Members

GGIT_SUBMODULE_IGNORE_UNSPECIFIED

reset to on-disk value.

 

GGIT_SUBMODULE_IGNORE_NONE

don't ignore any change.

 

GGIT_SUBMODULE_IGNORE_UNTRACKED

ignore untracked files.

 

GGIT_SUBMODULE_IGNORE_DIRTY

ignore changes in the working directory.

 

GGIT_SUBMODULE_IGNORE_ALL

never check if the submodule is dirty.

 

enum GgitSubmoduleStatus

Members

GGIT_SUBMODULE_STATUS_IN_HEAD

   

GGIT_SUBMODULE_STATUS_IN_INDEX

   

GGIT_SUBMODULE_STATUS_IN_CONFIG

   

GGIT_SUBMODULE_STATUS_IN_WD

   

GGIT_SUBMODULE_STATUS_INDEX_ADDED

   

GGIT_SUBMODULE_STATUS_INDEX_DELETED

   

GGIT_SUBMODULE_STATUS_INDEX_MODIFIED

   

GGIT_SUBMODULE_STATUS_WD_UNINITIALIZED

   

GGIT_SUBMODULE_STATUS_WD_ADDED

   

GGIT_SUBMODULE_STATUS_WD_DELETED

   

GGIT_SUBMODULE_STATUS_WD_MODIFIED

   

GGIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED

   

GGIT_SUBMODULE_STATUS_WD_WD_MODIFIED

   

GGIT_SUBMODULE_STATUS_WD_UNTRACKED

   

enum GgitSubmoduleUpdate

Describes how a submodule should be updated.

Members

GGIT_SUBMODULE_UPDATE_CHECKOUT

checkout the submodule.

 

GGIT_SUBMODULE_UPDATE_REBASE

rebase the current branch onto the commit recorded in the superproject.

 

GGIT_SUBMODULE_UPDATE_MERGE

merge the commit recorded in the superproject into the current branch.

 

GGIT_SUBMODULE_UPDATE_NONE

do not update this submodule.

 

GGIT_SUBMODULE_UPDATE_DEFAULT

not used except as static initializer when we don't want any particular update rule to be specified.