mercurial/peer.py
changeset 17192 1ac628cd7113
parent 17191 5884812686f7
child 17193 1d710fe5ee0e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial/peer.py	Fri Jul 13 21:47:06 2012 +0200
@@ -0,0 +1,49 @@
+# peer.py - repository base classes for mercurial
+#
+# Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
+# Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+
+from i18n import _
+import error
+
+class peerrepository(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.'''
+        caps = self._capabilities()
+        if name in caps:
+            return True
+        name_eq = name + '='
+        for cap in caps:
+            if cap.startswith(name_eq):
+                return cap[len(name_eq):]
+        return False
+
+    def requirecap(self, name, purpose):
+        '''raise an exception if the given capability is not present'''
+        if not self.capable(name):
+            raise error.CapabilityError(
+                _('cannot %s; remote repository does not '
+                  'support the %r capability') % (purpose, name))
+
+    def local(self):
+        '''return peer as a localrepo, or None'''
+        return None
+
+    def peer(self):
+        return self
+
+    def peer(self):
+        return self
+
+    def cancopy(self):
+        return False
+
+    def close(self):
+        pass