1

ヘルプによると

$ 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が表示されません。何か見落としましたか?

ありがとう。

4

1 に答える 1

3

プロセスの戻りコードを探しています:

p = Popen(['hg', 'verify', '-R', 'natrium-master', '-q'], stdout=PIPE, stdin=PIPE)
out, err = p.communicate()
print p.returncode

ドキュメントは、プロセスの存在ステータスを参照しています。

于 2013-01-08T20:01:55.133 に答える