repo.py
40 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
/ mercurial / repo.py
mpm@selenic.com
|
r1089 | # repo.py - repository base classes for mercurial | ||
# | ||||
Thomas Arendsen Hein
|
r4635 | # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | ||
Vadim Gelfer
|
r2859 | # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com> | ||
mpm@selenic.com
|
r1089 | # | ||
Martin Geisler
|
r8225 | # This software may be used and distributed according to the terms of the | ||
Matt Mackall
|
r10263 | # GNU General Public License version 2 or any later version. | ||
mpm@selenic.com
|
r1089 | |||
Benoit Boissinot
|
r5455 | from i18n import _ | ||
Peter Arrenbrecht
|
r7873 | import error | ||
Benoit Boissinot
|
r5455 | |||
Vadim Gelfer
|
r2612 | class repository(object): | ||
def capable(self, name): | ||||
'''tell whether repo supports named capability. | ||||
return False if not supported. | ||||
if boolean capability, return True. | ||||
if string capability, return string.''' | ||||
Bryan O'Sullivan
|
r5259 | if name in self.capabilities: | ||
return True | ||||
Vadim Gelfer
|
r2612 | name_eq = name + '=' | ||
for cap in self.capabilities: | ||||
if cap.startswith(name_eq): | ||||
return cap[len(name_eq):] | ||||
return False | ||||
Bryan O'Sullivan
|
r5259 | |||
def requirecap(self, name, purpose): | ||||
'''raise an exception if the given capability is not present''' | ||||
if not self.capable(name): | ||||
Matt Mackall
|
r7637 | raise error.CapabilityError( | ||
_('cannot %s; remote repository does not ' | ||||
'support the %r capability') % (purpose, name)) | ||||
John Mulligan
|
r6311 | |||
def local(self): | ||||
return False | ||||
def cancopy(self): | ||||
return self.local() | ||||
Adrian Buehlmann
|
r13382 | |||
def close(self): | ||||
pass | ||||