I am using pygit2 to access that status of the repo
status = repo.status()
for filepath,flags in status.items():
print ("path %s flags %d", filepath, flags)
I dont seem to be able to find any documentation on how to interpret the flags
Could someone point me in the rigth direction please
The documentation seems to be pretty clear on this:
Repository.status(untracked_files: str = 'all', ignored: bool = False) → dict[str, enums.FileStatus]
Reads the status of the repository and returns a dictionary with file paths as keys and FileStatus flags as values.
The status values are in a bitmask enum:
>>> from pygit2.enums import FileStatus
>>> FileStatus.__members__
mappingproxy({
'CURRENT': <FileStatus.CURRENT: 0>,
'INDEX_NEW': <FileStatus.INDEX_NEW: 1>,
'INDEX_MODIFIED': <FileStatus.INDEX_MODIFIED: 2>,
'INDEX_DELETED': <FileStatus.INDEX_DELETED: 4>,
'INDEX_RENAMED': <FileStatus.INDEX_RENAMED: 8>,
'INDEX_TYPECHANGE': <FileStatus.INDEX_TYPECHANGE: 16>,
'WT_NEW': <FileStatus.WT_NEW: 128>,
'WT_MODIFIED': <FileStatus.WT_MODIFIED: 256>,
'WT_DELETED': <FileStatus.WT_DELETED: 512>,
'WT_TYPECHANGE': <FileStatus.WT_TYPECHANGE: 1024>,
'WT_RENAMED': <FileStatus.WT_RENAMED: 2048>,
'WT_UNREADABLE': <FileStatus.WT_UNREADABLE: 4096>,
'IGNORED': <FileStatus.IGNORED: 16384>,
'CONFLICTED': <FileStatus.CONFLICTED: 32768>
})
Note that actual status values may be combinations of this mask, for example a file which has both staged (index) and unstaged (worktree) changes would report a status value of:
<FileStatus.INDEX_MODIFIED|WT_MODIFIED: 258>