如何解释 pygit2 状态信息

how to interpret pygit2 status info

我正在使用 pygit2 访问存储库的状态

status = repo.status()

for filepath,flags in status.items():
    print ("path %s flags %d", filepath, flags)

我似乎找不到任何关于如何解释标志的文档

有人能给我指出正确的方向吗

documentation 似乎很清楚这一点:

Repository.status() → {str: int}

Reads the status of the repository and returns a dictionary with file paths as keys and status flags as values. See pygit2.GIT_STATUS_*.

这里有:https://github.com/libgit2/pygit2/blob/320ee5e733039d4a3cc952b287498dbc5737c353/src/pygit2.c#L312-L320

您需要提取 pygit2 状态代码。这是一个例子。

一些未暂存提交的 git status 输出:

On branch master
Changes not staged for commit:
    deleted:    deleted.txt
    modified:   modified.txt
Untracked files:
    added.txt

pygit2 状态输出

repo.status()
#{'added.txt': 128, 'deleted.txt': 512, 'modified.txt': 256}

来自 pygit2 的状态码

from pygit2 import GIT_STATUS_WT_NEW, GIT_STATUS_WT_DELETED, GIT_STATUS_WT_MODIFIED
print("GIT_STATUS_WT_NEW", GIT_STATUS_WT_NEW)
print("GIT_STATUS_WT_DELETED", GIT_STATUS_WT_DELETED)
print("GIT_STATUS_WT_MODIFIED", GIT_STATUS_WT_MODIFIED)
#GIT_STATUS_WT_NEW 128
#GIT_STATUS_WT_DELETED 512
#GIT_STATUS_WT_MODIFIED 256

对于分阶段提交,相关状态代码为 GIT_STATUS_INDEX_NEWGIT_STATUS_INDEX_DELETEDGIT_STATUS_INDEX_MODIFIED 等。