Mercurial > hg
view tests/md5sum.py @ 36468:6aae86976324
narrow: always wrap repo
It's simpler to always wrap the repo. This prepares for moving
narrowrepo.narrowmatch() onto localrepo by showing that it's now safe
to always wrap the repo (and thus always define narrowmatch() etc.).
Note that since narrowmatch() returns an always-matcher (rather than
None) in non-narrow repos, this may mean a performance hit when the
narrow extension is enabled because it adds a no-op filtering step in
various places against the always-matcher. I'll restore some of that
soon.
Differential Revision: https://phab.mercurial-scm.org/D2491
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 28 Feb 2018 12:55:05 -0800 |
parents | 904bc1dc2694 |
children | 2372284d9457 |
line wrap: on
line source
#!/usr/bin/env python # # Based on python's Tools/scripts/md5sum.py # # This software may be used and distributed according to the terms # of the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2, which is # GPL-compatible. from __future__ import absolute_import import hashlib import os import sys try: import msvcrt msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) except ImportError: pass for filename in sys.argv[1:]: try: fp = open(filename, 'rb') except IOError as msg: sys.stderr.write('%s: Can\'t open: %s\n' % (filename, msg)) sys.exit(1) m = hashlib.md5() try: for data in iter(lambda: fp.read(8192), b''): m.update(data) except IOError as msg: sys.stderr.write('%s: I/O error: %s\n' % (filename, msg)) sys.exit(1) sys.stdout.write('%s %s\n' % (m.hexdigest(), filename)) sys.exit(0)