hgext/largefiles/wirestore.py
author Patrick Mezard <patrick@mezard.eu>
Sat, 12 May 2012 00:19:30 +0200
changeset 16656 4ae3ba9e4d7a
parent 15252 6e809bb4f969
child 16686 67964cda8701
permissions -rw-r--r--
mq: introduce mq.check setting When: [mq] check = True is set, qpush, qpop and qgoto behave as if -c/--check were passed. If incompatible options like -f/--force or --exact are set, this setting is ignored. This setting enables what many users expect mq default behaviour to be.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15168
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
     1
# Copyright 2010-2011 Fog Creek Software
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
     2
#
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
     3
# This software may be used and distributed according to the terms of the
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
     4
# GNU General Public License version 2 or any later version.
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
     5
15252
6e809bb4f969 largefiles: improve comments, internal docstrings
Greg Ward <greg@gerg.ca>
parents: 15168
diff changeset
     6
'''largefile store working over Mercurial's wire protocol'''
15168
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
     7
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
     8
import lfutil
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
     9
import remotestore
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    10
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    11
class wirestore(remotestore.remotestore):
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    12
    def __init__(self, ui, repo, remote):
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    13
        cap = remote.capable('largefiles')
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    14
        if not cap:
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    15
            raise lfutil.storeprotonotcapable([])
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    16
        storetypes = cap.split(',')
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    17
        if not 'serve' in storetypes:
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    18
            raise lfutil.storeprotonotcapable(storetypes)
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    19
        self.remote = remote
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    20
        super(wirestore, self).__init__(ui, repo, remote.url())
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    21
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    22
    def _put(self, hash, fd):
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    23
        return self.remote.putlfile(hash, fd)
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    24
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    25
    def _get(self, hash):
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    26
        return self.remote.getlfile(hash)
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    27
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    28
    def _stat(self, hash):
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
    29
        return self.remote.statlfile(hash)