Rev 486: Add dist_to_origin field to revmap. in file:///home/jelmer/bzr-svn/0.4/

Jelmer Vernooij jelmer at samba.org
Sun Jun 17 21:49:38 BST 2007


------------------------------------------------------------
revno: 486
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Sun 2007-06-17 22:49:21 +0200
message:
  Add dist_to_origin field to revmap.
modified:
  repository.py
  revids.py
  tests/test_revids.py
=== modified file 'repository.py'
--- a/repository.py	2007-06-17 17:07:06 +0000
+++ b/repository.py	2007-06-17 20:49:21 +0000
@@ -435,11 +435,13 @@
         else:
             try:
                 (bzr_revno, revid) = parse_revid_property(line)
+                self.revmap.insert_revid(revid, path, revnum, revnum, 
+                        "undefined", bzr_revno)
             except errors.InvalidPropertyValue, e:
                 mutter(str(e))
                 revid = generate_svn_revision_id(self.uuid, revnum, path)
-
-        self.revmap.insert_revid(revid, path, revnum, revnum, "undefined")
+                self.revmap.insert_revid(revid, path, revnum, revnum, 
+                        "undefined")
 
         return revid
 
@@ -487,7 +489,7 @@
                 # add them
                 for (entry_revno, entry_revid) in revids:
                     self.revmap.insert_revid(entry_revid, branch, 0, revno, 
-                            "undefined")
+                            "undefined", entry_revno)
 
                 if revid in revids:
                     break
@@ -508,7 +510,8 @@
                 # that will already have happened earlier
                 continue
             if entry_revid == revid:
-                self.revmap.insert_revid(revid, bp, rev, rev, scheme)
+                self.revmap.insert_revid(revid, bp, rev, rev, scheme, 
+                                         entry_revno)
                 return (bp, rev)
 
         raise AssertionError("Revision id %s was added incorrectly" % revid)

=== modified file 'revids.py'
--- a/revids.py	2007-06-01 13:30:34 +0000
+++ b/revids.py	2007-06-17 20:49:21 +0000
@@ -85,7 +85,7 @@
         else:
             self.cachedb = cache_db
         self.cachedb.executescript("""
-        create table if not exists revmap (revid text, path text, min_revnum integer, max_revnum integer, scheme text);
+        create table if not exists revmap (revid text, path text, min_revnum integer, max_revnum integer, scheme text, dist_to_origin integer);
         create index if not exists revid on revmap (revid);
         """)
         self.cachedb.commit()
@@ -107,6 +107,21 @@
             return str(revid[0])
         return None
 
-    def insert_revid(self, revid, branch, min_revnum, max_revnum, scheme):
+    def insert_revid(self, revid, branch, min_revnum, max_revnum, scheme, 
+                     dist_to_origin=None):
         assert revid is not None and revid != ""
-        self.cachedb.execute("insert into revmap (revid, path, min_revnum, max_revnum, scheme) VALUES (?, ?, ?, ?, ?)", (revid, branch, min_revnum, max_revnum, scheme))
+        self.cachedb.execute(
+            "insert into revmap (revid, path, min_revnum, max_revnum, scheme) VALUES (?, ?, ?, ?, ?)", 
+            (revid, branch, min_revnum, max_revnum, scheme))
+        if dist_to_origin is not None:
+            self.cachedb.execute(
+                "update revmap set dist_to_origin = ?", 
+                (dist_to_origin,))
+
+    def lookup_dist_to_origin(self, revid):
+        revno = self.cachedb.execute(
+                "select dist_to_origin from revmap where revid='%s'" % revid).fetchone()
+        if revno is not None:
+            return int(revno[0])
+        return None
+

=== modified file 'tests/test_revids.py'
--- a/tests/test_revids.py	2007-05-18 00:43:38 +0000
+++ b/tests/test_revids.py	2007-06-17 20:49:21 +0000
@@ -43,6 +43,15 @@
         self.assertEquals("bla", 
                 revidmap.lookup_branch_revnum(42, "mypath"))
 
+    def test_lookup_dist(self):
+        revidmap = RevidMap()
+        revidmap.insert_revid("bla", "mypath", 42, 42, "brainslug", 
+                                    50)
+        self.assertEquals(50,
+                revidmap.lookup_dist_to_origin("bla"))
+        self.assertIs(None,
+                revidmap.lookup_dist_to_origin("blabla"))
+
     def test_lookup_branch_nonexistant(self):
         revidmap = RevidMap()
         self.assertIs(None,




More information about the bazaar-commits mailing list