X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/1d07e208b0897af64f71755c974762bc7cd19ca0..96bc5f73483f3e907eebd60df638a9de0a9124f3:/lib/wlrepo/__init__.py diff --git a/lib/wlrepo/__init__.py b/lib/wlrepo/__init__.py index 430e59f9..f8c07c68 100644 --- a/lib/wlrepo/__init__.py +++ b/lib/wlrepo/__init__.py @@ -18,7 +18,7 @@ class Library(object): """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 @@ -73,6 +73,9 @@ class Document(object): def parentof(self, other): return self._revision.parentof(other._revision) + def has_parent_from(self, other): + return self._revision.has_parent_from(other._revision) + def ancestorof(self, other): return self._revision.ancestorof(other._revision) @@ -105,9 +108,16 @@ class LibraryException(Exception): Exception.__init__(self, msg) self.cause = cause +class UpdateException(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=[]): @@ -122,7 +132,7 @@ class DocumentAlreadyExists(LibraryException): def open_library(path, proto, *args, **kwargs): if proto == 'hg': - import wlrepo.mercurial_backend - return wlrepo.mercurial_backend.MercurialLibrary(path, *args, **kwargs) + import wlrepo.mercurial_backend.library + return wlrepo.mercurial_backend.library.MercurialLibrary(path, *args, **kwargs) raise NotImplemented() \ No newline at end of file