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