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
GIT_SUBMODULE_STATUS_IN_HEAD
(1 << 0)
GIT_SUBMODULE_STATUS_IN_INDEX
(1 << 1)
GIT_SUBMODULE_STATUS_IN_CONFIG
(1 << 2)
GIT_SUBMODULE_STATUS_IN_WD
(1 << 3)
GIT_SUBMODULE_STATUS_INDEX_ADDED
(1 << 4)
GIT_SUBMODULE_STATUS_INDEX_DELETED
(1 << 5)
GIT_SUBMODULE_STATUS_INDEX_MODIFIED
(1 << 6)
GIT_SUBMODULE_STATUS_WD_UNINITIALIZED
(1 << 7)
GIT_SUBMODULE_STATUS_WD_ADDED
(1 << 8)
GIT_SUBMODULE_STATUS_WD_DELETED
(1 << 9)
GIT_SUBMODULE_STATUS_WD_MODIFIED
(1 << 10)
GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED
(1 << 11)
GIT_SUBMODULE_STATUS_WD_WD_MODIFIED
(1 << 12)
GIT_SUBMODULE_STATUS_WD_UNTRACKED
(1 << 13)