mercurial/repo.py
author Vadim Gelfer <vadim.gelfer@gmail.com>
Tue, 01 Aug 2006 15:40:28 -0700
changeset 2757 787e18b84893
parent 2612 ffb895f16925
child 2859 345bac2bc4ec
permissions -rw-r--r--
merge patches from brendan cully that did not apply clean against tip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1089
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
     1
# repo.py - repository base classes for mercurial
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
     2
#
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
     3
# Copyright 2005 Matt Mackall <mpm@selenic.com>
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
     4
#
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
     5
# This software may be used and distributed according to the terms
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
     6
# of the GNU General Public License, incorporated herein by reference.
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
     7
2612
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
     8
class RepoError(Exception):
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
     9
    pass
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    10
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    11
class repository(object):
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    12
    def capable(self, name):
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    13
        '''tell whether repo supports named capability.
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    14
        return False if not supported.
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    15
        if boolean capability, return True.
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    16
        if string capability, return string.'''
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    17
        name_eq = name + '='
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    18
        for cap in self.capabilities:
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    19
            if name == cap:
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    20
                return True
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    21
            if cap.startswith(name_eq):
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    22
                return cap[len(name_eq):]
ffb895f16925 add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1089
diff changeset
    23
        return False