diff --git a/hgext/chgserver.py b/hgext/chgserver.py --- a/hgext/chgserver.py +++ b/hgext/chgserver.py @@ -43,6 +43,7 @@ from __future__ import absolute_import import SocketServer import errno import gc +import hashlib import inspect import os import random @@ -76,7 +77,7 @@ testedwith = 'internal' def _hashlist(items): """return sha1 hexdigest for a list""" - return util.sha1(str(items)).hexdigest() + return hashlib.sha1(str(items)).hexdigest() # sensitive config sections affecting confighash _configsections = [ diff --git a/hgext/fsmonitor/__init__.py b/hgext/fsmonitor/__init__.py --- a/hgext/fsmonitor/__init__.py +++ b/hgext/fsmonitor/__init__.py @@ -91,6 +91,7 @@ will disable itself if any of those are from __future__ import absolute_import +import hashlib import os import stat import sys @@ -141,7 +142,7 @@ def _hashignore(ignore): copy. """ - sha1 = util.sha1() + sha1 = hashlib.sha1() if util.safehasattr(ignore, 'includepat'): sha1.update(ignore.includepat) sha1.update('\0\0') diff --git a/hgext/largefiles/lfcommands.py b/hgext/largefiles/lfcommands.py --- a/hgext/largefiles/lfcommands.py +++ b/hgext/largefiles/lfcommands.py @@ -10,6 +10,7 @@ from __future__ import absolute_import import errno +import hashlib import os import shutil @@ -229,7 +230,7 @@ def _lfconvert_addchangeset(rsrc, rdst, raise error.Abort(_('largefile %s becomes symlink') % f) # largefile was modified, update standins - m = util.sha1('') + m = hashlib.sha1('') m.update(ctx[f].data()) hash = m.hexdigest() if f not in lfiletohash or lfiletohash[f] != hash: diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py --- a/hgext/largefiles/lfutil.py +++ b/hgext/largefiles/lfutil.py @@ -10,6 +10,7 @@ from __future__ import absolute_import import copy +import hashlib import os import platform import stat @@ -359,7 +360,7 @@ def writestandin(repo, standin, hash, ex def copyandhash(instream, outfile): '''Read bytes from instream (iterable) and write them to outfile, computing the SHA-1 hash of the data along the way. Return the hash.''' - hasher = util.sha1('') + hasher = hashlib.sha1('') for data in instream: hasher.update(data) outfile.write(data) @@ -371,7 +372,7 @@ def hashrepofile(repo, file): def hashfile(file): if not os.path.exists(file): return '' - hasher = util.sha1('') + hasher = hashlib.sha1('') fd = open(file, 'rb') for data in util.filechunkiter(fd, 128 * 1024): hasher.update(data) @@ -400,7 +401,7 @@ def urljoin(first, second, *arg): def hexsha1(data): """hexsha1 returns the hex-encoded sha1 sum of the data in the file-like object data""" - h = util.sha1() + h = hashlib.sha1() for chunk in util.filechunkiter(data): h.update(chunk) return h.hexdigest() diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -8,6 +8,7 @@ from __future__ import absolute_import import errno +import hashlib from .i18n import _ from .node import ( @@ -1646,7 +1647,7 @@ def check_heads(repo, their_heads, conte Used by peer for unbundling. """ heads = repo.heads() - heads_hash = util.sha1(''.join(sorted(heads))).digest() + heads_hash = hashlib.sha1(''.join(sorted(heads))).digest() if not (their_heads == ['force'] or their_heads == heads or their_heads == ['hashed', heads_hash]): # someone else committed/pushed/unbundled while we diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -9,6 +9,7 @@ from __future__ import absolute_import import errno +import hashlib import os import shutil @@ -480,7 +481,8 @@ def clone(ui, peeropts, source, dest=Non ui.status(_('(not using pooled storage: ' 'unable to resolve identity of remote)\n')) elif sharenamemode == 'remote': - sharepath = os.path.join(sharepool, util.sha1(source).hexdigest()) + sharepath = os.path.join( + sharepool, hashlib.sha1(source).hexdigest()) else: raise error.Abort('unknown share naming mode: %s' % sharenamemode) diff --git a/mercurial/keepalive.py b/mercurial/keepalive.py --- a/mercurial/keepalive.py +++ b/mercurial/keepalive.py @@ -110,6 +110,7 @@ EXTRA ATTRIBUTES AND METHODS from __future__ import absolute_import, print_function import errno +import hashlib import httplib import socket import sys @@ -624,8 +625,7 @@ def error_handler(url): keepalive_handler.close_all() def continuity(url): - from . import util - md5 = util.md5 + md5 = hashlib.md5 format = '%25s: %s' # first fetch the file with the normal http handler diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -8,6 +8,7 @@ from __future__ import absolute_import import errno +import hashlib import inspect import os import random @@ -1013,7 +1014,7 @@ class localrepository(object): hint=_("run 'hg recover' to clean up transaction")) idbase = "%.40f#%f" % (random.random(), time.time()) - txnid = 'TXN:' + util.sha1(idbase).hexdigest() + txnid = 'TXN:' + hashlib.sha1(idbase).hexdigest() self.hook('pretxnopen', throw=True, txnname=desc, txnid=txnid) self._writejournal(desc) diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -8,6 +8,7 @@ from __future__ import absolute_import import errno +import hashlib import os import shutil import struct @@ -408,7 +409,7 @@ class mergestate(object): if fcl.isabsent(): hash = nullhex else: - hash = util.sha1(fcl.path()).hexdigest() + hash = hashlib.sha1(fcl.path()).hexdigest() self._repo.vfs.write('merge/' + hash, fcl.data()) self._state[fd] = ['u', hash, fcl.path(), fca.path(), hex(fca.filenode()), diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -12,6 +12,7 @@ import collections import copy import email import errno +import hashlib import os import posixpath import re @@ -2412,7 +2413,7 @@ def trydiff(repo, revs, ctx1, ctx2, modi if not text: text = "" l = len(text) - s = util.sha1('blob %d\0' % l) + s = hashlib.sha1('blob %d\0' % l) s.update(text) return s.hexdigest() diff --git a/mercurial/repair.py b/mercurial/repair.py --- a/mercurial/repair.py +++ b/mercurial/repair.py @@ -9,6 +9,7 @@ from __future__ import absolute_import import errno +import hashlib from .i18n import _ from .node import short @@ -35,7 +36,7 @@ def _bundle(repo, bases, heads, node, su # Include a hash of all the nodes in the filename for uniqueness allcommits = repo.set('%ln::%ln', bases, heads) allhashes = sorted(c.hex() for c in allcommits) - totalhash = util.sha1(''.join(allhashes)).hexdigest() + totalhash = hashlib.sha1(''.join(allhashes)).hexdigest() name = "%s/%s-%s-%s.hg" % (backupdir, short(node), totalhash[:8], suffix) comp = None diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -9,6 +9,7 @@ from __future__ import absolute_import import copy +import hashlib import heapq import struct @@ -18,7 +19,6 @@ from . import ( obsolete, phases, tags as tagsmod, - util, ) def hideablerevs(repo): @@ -102,7 +102,7 @@ def cachehash(repo, hideable): it to the cache. Upon reading we can easily validate by checking the hash against the stored one and discard the cache in case the hashes don't match. """ - h = util.sha1() + h = hashlib.sha1() h.update(''.join(repo.heads())) h.update(str(hash(frozenset(hideable)))) return h.digest() diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -10,6 +10,7 @@ from __future__ import absolute_import import contextlib import errno import glob +import hashlib import os import re import shutil @@ -224,7 +225,7 @@ def filteredhash(repo, maxrev): key = None revs = sorted(r for r in cl.filteredrevs if r <= maxrev) if revs: - s = util.sha1() + s = hashlib.sha1() for rev in revs: s.update('%s;' % rev) key = s.digest() diff --git a/mercurial/similar.py b/mercurial/similar.py --- a/mercurial/similar.py +++ b/mercurial/similar.py @@ -7,6 +7,8 @@ from __future__ import absolute_import +import hashlib + from .i18n import _ from . import ( bdiff, @@ -27,14 +29,14 @@ def _findexactmatches(repo, added, remov for i, fctx in enumerate(removed): repo.ui.progress(_('searching for exact renames'), i, total=numfiles, unit=_('files')) - h = util.sha1(fctx.data()).digest() + h = hashlib.sha1(fctx.data()).digest() hashes[h] = fctx # For each added file, see if it corresponds to a removed file. for i, fctx in enumerate(added): repo.ui.progress(_('searching for exact renames'), i + len(removed), total=numfiles, unit=_('files')) - h = util.sha1(fctx.data()).digest() + h = hashlib.sha1(fctx.data()).digest() if h in hashes: yield (hashes[h], fctx) diff --git a/mercurial/sslutil.py b/mercurial/sslutil.py --- a/mercurial/sslutil.py +++ b/mercurial/sslutil.py @@ -9,6 +9,7 @@ from __future__ import absolute_import +import hashlib import os import ssl import sys @@ -388,9 +389,9 @@ def validatesocket(sock): # If a certificate fingerprint is pinned, use it and only it to # validate the remote cert. peerfingerprints = { - 'sha1': util.sha1(peercert).hexdigest(), - 'sha256': util.sha256(peercert).hexdigest(), - 'sha512': util.sha512(peercert).hexdigest(), + 'sha1': hashlib.sha1(peercert).hexdigest(), + 'sha256': hashlib.sha256(peercert).hexdigest(), + 'sha512': hashlib.sha512(peercert).hexdigest(), } def fmtfingerprint(s): diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py --- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -9,6 +9,7 @@ from __future__ import absolute_import import copy import errno +import hashlib import os import posixpath import re @@ -50,7 +51,7 @@ def _expandedabspath(path): def _getstorehashcachename(remotepath): '''get a unique filename for the store hash cache of a remote repository''' - return util.sha1(_expandedabspath(remotepath)).hexdigest()[0:12] + return hashlib.sha1(_expandedabspath(remotepath)).hexdigest()[0:12] class SubrepoAbort(error.Abort): """Exception class used to avoid handling a subrepo error more than once""" @@ -659,7 +660,7 @@ class hgsubrepo(abstractsubrepo): yield '# %s\n' % _expandedabspath(remotepath) vfs = self._repo.vfs for relname in filelist: - filehash = util.sha1(vfs.tryread(relname)).hexdigest() + filehash = hashlib.sha1(vfs.tryread(relname)).hexdigest() yield '%s = %s\n' % (relname, filehash) @propertycache diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py --- a/mercurial/wireproto.py +++ b/mercurial/wireproto.py @@ -7,6 +7,7 @@ from __future__ import absolute_import +import hashlib import itertools import os import sys @@ -410,7 +411,7 @@ class wirepeer(peer.peerrepository): if heads != ['force'] and self.capable('unbundlehash'): heads = encodelist(['hashed', - util.sha1(''.join(sorted(heads))).digest()]) + hashlib.sha1(''.join(sorted(heads))).digest()]) else: heads = encodelist(heads)