Oops
[redakcja.git] / lib / wlrepo / mercurial_backend / library.py
index e28bd7e..ebb38d8 100644 (file)
@@ -70,7 +70,7 @@ class MercurialLibrary(wlrepo.Library):
 
 
     def documents(self):
 
 
     def documents(self):
-        return [ key[5:] for key in \
+        return [ key[5:].decode('utf-8') for key in \
             self._hgrepo.branchmap() if key.startswith("$doc:") ]
 
     @property
             self._hgrepo.branchmap() if key.startswith("$doc:") ]
 
     @property
@@ -96,10 +96,16 @@ class MercurialLibrary(wlrepo.Library):
         return self.document_for_rev(self.fulldocid(docid, user))
 
     def get_revision(self, revid):
         return self.document_for_rev(self.fulldocid(docid, user))
 
     def get_revision(self, revid):
-        revid = self._sanitize_string(revid)
+        revid = self._sanitize_string(revid).decode('utf-8')
+
+        print "Looking up rev %r (%s)" %(revid, type(revid))
 
         try:
 
         try:
-            ctx = self._changectx(revid)
+            # THIS IS THE MOST BRAIN-DEAD API I EVER SEEN
+            # WHY DO ALL THE OTHER METHODS SIMPLY
+            # FAIL WHEN GIVEN UNICODE, WHEN THIS WORKS ONLY!! WITH IT
+
+            ctx = self._changectx( revid )
         except mercurial.error.RepoError, e:
             raise wlrepo.RevisionNotFound(revid)
 
         except mercurial.error.RepoError, e:
             raise wlrepo.RevisionNotFound(revid)
 
@@ -118,7 +124,6 @@ class MercurialLibrary(wlrepo.Library):
         fulldocid += u'$doc:' + docid
         return fulldocid
 
         fulldocid += u'$doc:' + docid
         return fulldocid
 
-
     def has_revision(self, revid):
         try:
             self._hgrepo[revid]
     def has_revision(self, revid):
         try:
             self._hgrepo[revid]