##// END OF EJS Templates
diffutil: move the module out of utils package...
diffutil: move the module out of utils package mercurial.utils modules inherit the property of the mercurial.util, which is no dependency on ui, repo, ctx, etc. As the diffutil module seems to reside in the scmutil layer, it's probably better to not put it under the utils package.

File last commit:

r37650:6c55ce51 default
r38607:1c93e023 @70 default
Show More
wirestore.py
43 lines | 1.4 KiB | text/x-python | PythonLexer
# Copyright 2010-2011 Fog Creek Software
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
'''largefile store working over Mercurial's wire protocol'''
from __future__ import absolute_import
from . import (
lfutil,
remotestore,
)
class wirestore(remotestore.remotestore):
def __init__(self, ui, repo, remote):
cap = remote.capable('largefiles')
if not cap:
raise lfutil.storeprotonotcapable([])
storetypes = cap.split(',')
if 'serve' not in storetypes:
raise lfutil.storeprotonotcapable(storetypes)
self.remote = remote
super(wirestore, self).__init__(ui, repo, remote.url())
def _put(self, hash, fd):
return self.remote.putlfile(hash, fd)
def _get(self, hash):
return self.remote.getlfile(hash)
def _stat(self, hashes):
'''For each hash, return 0 if it is available, other values if not.
It is usually 2 if the largefile is missing, but might be 1 the server
has a corrupted copy.'''
with self.remote.commandexecutor() as e:
fs = []
for hash in hashes:
fs.append((hash, e.callcommand('statlfile', {
'sha': hash,
})))
return {hash: f.result() for hash, f in fs}