根据帮助
$ hg -v help verify
hg verify
verify the integrity of the repository
Verify the integrity of the current repository.
This will perform an extensive check of the repository's integrity,
validating the hashes and checksums of each entry in the changelog,
manifest, and tracked files, as well as the integrity of their crosslinks
and indices.
Returns 0 on success, 1 if errors are encountered.
从控制台输出
>>> from subprocess import Popen, PIPE
>>> p = Popen(['hg', 'verify', '-R', 'sample-master'], stdout=PIPE, stdin=PIPE)
>>> out, err = p.communicate()
>>> out
'checking changesets\nchecking manifests\ncrosschecking files in changesets and manifests\nchecking files\n2186 files, 214 changesets, 3055 total revisions\n'
>>> err
>>> """-q is quite suppress output"""
>>> p = Popen(['hg', 'verify', '-R', 'sample-master', '-q'], stdout=PIPE, stdin=PIPE)
>>> out, err = p.communicate()
>>> out
''
我现在损坏了.hg/store
>>> out, err = Popen(['hg', 'verify', '-R', 'sample-master', '-q'], stdout=PIPE, stdin=PIPE, stderr=PIPE).communicate()
>>> out, err
('', ' data/req.txt.i@119: missing revlog!\n 119: empty or missing req.txt\n req.txt@119: 8befed264a2f in manifests not found\n3 integrity errors encountered!\n(first damaged changeset appears to be 119)\n')
我没有看到0或1.我错过了什么吗?
感谢。
答案 0 :(得分:3)
您正在寻找process return code:
p = Popen(['hg', 'verify', '-R', 'natrium-master', '-q'], stdout=PIPE, stdin=PIPE)
out, err = p.communicate()
print p.returncode
文档指的是流程的exist status。