如何解释pygit2状态信息

时间:2017-05-11 09:50:31

标签: python git pygit2

我正在使用pygit2来访问repo的状态

status = repo.status()

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

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

有人能指出我的方向吗

2 个答案:

答案 0 :(得分:1)

documentation似乎很清楚:

  

Repository.status()→{str:int}

     

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

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

答案 1 :(得分: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,依此类推。