Merge branch 'zuber-view-refactor'
[redakcja.git] / lib / wlrepo / mercurial_backend / __init__.py
index 10a4cf8..2d0ce82 100644 (file)
@@ -5,8 +5,7 @@ __date__ = "$2009-09-25 09:20:22$"
 __doc__ = "Module documentation."
 
 import wlrepo
 __doc__ = "Module documentation."
 
 import wlrepo
-
-
+from mercurial.node import nullid
 
 class MercurialRevision(wlrepo.Revision):
 
 
 class MercurialRevision(wlrepo.Revision):
 
@@ -22,7 +21,7 @@ class MercurialRevision(wlrepo.Revision):
             idx = branchname.find("$doc:")
             if(idx < 0):
                 raise ValueError("Revision %s is not a valid document revision." % changectx.hex());
             idx = branchname.find("$doc:")
             if(idx < 0):
                 raise ValueError("Revision %s is not a valid document revision." % changectx.hex());
-            self._username = branchname[0:idx]
+            self._username = branchname[6:idx]
             self._docname = branchname[idx+5:]
         else:
             raise ValueError("Revision %s is not a valid document revision." % changectx.hex());
             self._docname = branchname[idx+5:]
         else:
             raise ValueError("Revision %s is not a valid document revision." % changectx.hex());
@@ -67,11 +66,15 @@ class MercurialRevision(wlrepo.Revision):
         return (a.branch() == self._changectx.branch())
 
     def merge_with(self, other, user, message):
         return (a.branch() == self._changectx.branch())
 
     def merge_with(self, other, user, message):
-        lock = self._library._lock(True)
+        lock = self._library.lock(True)
         try:
             self._library._checkout(self._changectx.node())
         try:
             self._library._checkout(self._changectx.node())
-            self._library._merge(other._changectx.node())
-            self._library._commit(user=user, message=message)
+            status = self._library._merge(other._changectx.node())
+            if status.isclean():
+                self._library._commit(user=user, message=message)
+                return (True, True)
+            else:
+                return (False, False)
         finally:
             lock.release()
 
         finally:
             lock.release()