--- /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