git_submodule_status_t

Return codes for submodule status.

A combination of these flags will be returned to describe the status of a submodule. Depending on the "ignore" property of the submodule, some of the flags may never be returned because they indicate changes that are supposed to be ignored.

Submodule info is contained in 4 places: the HEAD tree, the index, config files (both .git/config and .gitmodules), and the working directory. Any or all of those places might be missing information about the submodule depending on what state the repo is in. We consider all four places to build the combination of status flags.

There are four values that are not really status, but give basic info about what sources of submodule data are available. These will be returned even if ignore is set to "ALL".

* IN_HEAD - superproject head contains submodule * IN_INDEX - superproject index contains submodule * IN_CONFIG - superproject gitmodules has submodule * IN_WD - superproject workdir has submodule

The following values will be returned so long as ignore is not "ALL".

* INDEX_ADDED - in index, not in head * INDEX_DELETED - in head, not in index * INDEX_MODIFIED - index and head don't match * WD_UNINITIALIZED - workdir contains empty directory * WD_ADDED - in workdir, not index * WD_DELETED - in index, not workdir * WD_MODIFIED - index and workdir head don't match

The following can only be returned if ignore is "NONE" or "UNTRACKED".

* WD_INDEX_MODIFIED - submodule workdir index is dirty * WD_WD_MODIFIED - submodule workdir has modified files

Lastly, the following will only be returned for ignore "NONE".

* WD_UNTRACKED - wd contains untracked files

Values

ValueMeaning
GIT_SUBMODULE_STATUS_IN_HEAD1u << 0
GIT_SUBMODULE_STATUS_IN_INDEX1u << 1
GIT_SUBMODULE_STATUS_IN_CONFIG1u << 2
GIT_SUBMODULE_STATUS_IN_WD1u << 3
GIT_SUBMODULE_STATUS_INDEX_ADDED1u << 4
GIT_SUBMODULE_STATUS_INDEX_DELETED1u << 5
GIT_SUBMODULE_STATUS_INDEX_MODIFIED1u << 6
GIT_SUBMODULE_STATUS_WD_UNINITIALIZED1u << 7
GIT_SUBMODULE_STATUS_WD_ADDED1u << 8
GIT_SUBMODULE_STATUS_WD_DELETED1u << 9
GIT_SUBMODULE_STATUS_WD_MODIFIED1u << 10
GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED1u << 11
GIT_SUBMODULE_STATUS_WD_WD_MODIFIED1u << 12
GIT_SUBMODULE_STATUS_WD_UNTRACKED1u << 13

Meta