Rev 1557: Fix caching. in file:///data/jelmer/bzr-svn/pushmerged/

Jelmer Vernooij jelmer at samba.org
Sun Aug 3 16:59:07 BST 2008


At file:///data/jelmer/bzr-svn/pushmerged/

------------------------------------------------------------
revno: 1557
revision-id: jelmer at samba.org-20080803155905-dk9t1da9cjr4aviy
parent: jelmer at samba.org-20080803151349-l2told14238rupq6
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: pushmerged
timestamp: Sun 2008-08-03 17:59:05 +0200
message:
  Fix caching.
modified:
  changes.py                     changes.py-20080330205801-lh92uht2ztppvdcz-1
  revids.py                      revids.py-20070416220458-36vfa0730cchevp1-1
=== modified file 'changes.py'
--- a/changes.py	2008-03-30 20:59:01 +0000
+++ b/changes.py	2008-08-03 15:59:05 +0000
@@ -42,7 +42,8 @@
         if paths[branch_path][1] is None: 
             return None # Was added here
         revnum = paths[branch_path][2]
-        branch_path = paths[branch_path][1].encode("utf-8")
+        assert isinstance(paths[branch_path][1], str)
+        branch_path = paths[branch_path][1]
         return (branch_path, revnum)
     
     # Make sure we get the right location for the next time if 

=== modified file 'revids.py'
--- a/revids.py	2008-08-03 05:35:31 +0000
+++ b/revids.py	2008-08-03 15:59:05 +0000
@@ -247,7 +247,11 @@
             "select path, min_revnum, max_revnum, scheme from revmap where revid=?", (revid,)).fetchone()
         if ret is None:
             raise NoSuchRevision(self, revid)
-        return (ret[0].encode("utf-8"), int(ret[1]), int(ret[2]), ret[3].encode("utf-8"))
+        (path, min_revnum, max_revnum, scheme) = (ret[0].encode("utf-8"), int(ret[1]), int(ret[2]), ret[3].encode("utf-8"))
+        if min_revnum > max_revnum:
+            return (path, max_revnum, min_revnum, scheme)
+        else:
+            return (path, min_revnum, max_revnum, scheme)
 
     def lookup_branch_revnum(self, revnum, path, scheme):
         """Lookup a revision by revision number, branch path and branching scheme.
@@ -260,7 +264,7 @@
         assert isinstance(path, str)
         assert isinstance(scheme, str)
         row = self.cachedb.execute(
-                "select revid from revmap where max_revnum = ? and min_revnum=? and path=? and scheme=?", (revnum, revnum, path, scheme)).fetchone()
+                "select revid from revmap where max_revnum=? and min_revnum=? and path=? and scheme=?", (revnum, revnum, path, scheme)).fetchone()
         if row is not None:
             ret = str(row[0])
         else:
@@ -287,7 +291,7 @@
         assert min_revnum <= max_revnum
         self.mutter("insert revid %r:%r-%r -> %r", branch, min_revnum, max_revnum, revid)
         cursor = self.cachedb.execute(
-            "update revmap set min_revnum = MIN(MAX(min_revnum,?), max_revnum), max_revnum = MAX(MIN(max_revnum, ?), min_revnum) WHERE revid=? AND path=? AND scheme=?",
+            "update revmap set min_revnum = MAX(min_revnum,?), max_revnum = MIN(max_revnum, ?) WHERE revid=? AND path=? AND scheme=?",
             (min_revnum, max_revnum, revid, branch, scheme))
         if cursor.rowcount == 0:
             self.cachedb.execute(




More information about the bazaar-commits mailing list