1

我正在使用 pygit2 访问回购的状态

status = repo.status()

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

我似乎无法找到有关如何解释标志的任何文档

有人可以指出我正确的方向吗

4

2 回答 2

1

文档似乎对此非常清楚:

Repository.status() → {str: int}

读取存储库的状态并返回一个字典,其中文件路径作为键,状态标志作为值。请参阅 pygit2.GIT_STATUS_*。

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

于 2017-05-11T10:11:58.567 回答
0

您需要提取 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等。

于 2020-04-30T11:59:02.010 回答