##// END OF EJS Templates
run-tests: set HGMODULEPOLICY for --pure...
run-tests: set HGMODULEPOLICY for --pure Without this, my python 2.6 virtualenv test run with --pure and --local fails with: + ImportError: Python minor version mismatch: The Mercurial extension modules were compiled with Python 2.7.8, but Mercurial is currently using Python with sys.hexversion=33950192: Python 2.6.9 (unknown, Apr 13 2016, 12:40:12) + [GCC 4.9.2 20141101 (Red Hat 4.9.2-1)] + at: ~/hg/py26/bin/python

File last commit:

r28439:b6e71f8a default
r28905:c969c72d default
Show More
wirestore.py
36 lines | 1.2 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'''
import lfutil
import 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.'''
batch = self.remote.iterbatch()
for hash in hashes:
batch.statlfile(hash)
batch.submit()
return dict(zip(hashes, batch.results()))