"""List all documents in the library."""
pass
- def document_for_rev(self, rev):
+ def document_for_revision(self, rev):
"""Retrieve a document in the specified revision."""
pass
- def document(self, docid, user=None):
+ def document(self, docid, user=None, rev='latest'):
"""Retrieve a document from a library."""
pass
Should be called on the user version of document. If not, it doesn nothing."""
def data(self, entry):
- """Returns the specified entry as a file-like object."""
+ """Returns the specified entry as a unicode data."""
pass
@property
def parentof(self, other):
return self._revision.parentof(other._revision)
+ def parent(self):
+ return self._library.document_for_revision(self._revision.parent())
+
+ def has_parent_from(self, other):
+ return self._revision.has_parent_from(other._revision)
+
def ancestorof(self, other):
return self._revision.ancestorof(other._revision)
Exception.__init__(self, msg)
self.cause = cause
+class UpdateException(LibraryException):
+ pass
+
+class OutdatedException(LibraryException):
+ pass
+
class RevisionNotFound(LibraryException):
def __init__(self, rev):
LibraryException.__init__(self, "Revision %r not found." % rev)
+
+class RevisionMismatch(LibraryException):
+ def __init__(self, fdi, rev):
+ LibraryException.__init__(self, "No revision %r for document %r." % (rev, fdi))
+
+class EntryNotFound(LibraryException):
+ def __init__(self, rev, entry, guesses=[]):
+ LibraryException.__init__(self, \
+ u"Entry '%s' at revision %r not found. %s" % (entry, rev, \
+ (u"Posible values:\n" + u',\n'.join(guesses)) if len(guesses) else u'') )
+
+class DocumentAlreadyExists(LibraryException):
pass
# import backends to local namespace
-from mercurial_backend.library import MercurialLibrary
\ No newline at end of file
+
+def open_library(path, proto, *args, **kwargs):
+ if proto == 'hg':
+ import wlrepo.mercurial_backend.library
+ return wlrepo.mercurial_backend.library.MercurialLibrary(path, *args, **kwargs)
+
+ raise NotImplemented()
\ No newline at end of file