Rev 2297: Follow copied tags correctly. in http://people.samba.org/bzr/jelmer/bzr-svn/0.5
Jelmer Vernooij
jelmer at samba.org
Tue Jan 13 03:18:19 GMT 2009
At http://people.samba.org/bzr/jelmer/bzr-svn/0.5
------------------------------------------------------------
revno: 2297
revision-id: jelmer at samba.org-20090113031811-9yg5mqwet7sdxsu1
parent: jelmer at samba.org-20090113004846-kq3mkdttsbhpgiz3
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.5
timestamp: Tue 2009-01-13 04:18:11 +0100
message:
Follow copied tags correctly.
modified:
NEWS news-20061231030336-h9fhq245ie0de8bs-1
revmeta.py revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
tests/test_revmeta.py test_revmeta.py-20080903002416-q6u02e2hrc2oxa8h-1
=== modified file 'NEWS'
--- a/NEWS 2009-01-12 23:42:55 +0000
+++ b/NEWS 2009-01-13 03:18:11 +0000
@@ -39,6 +39,8 @@
* Print proper error when attempting to create repository in Subversion
working copy. (#310063)
+ * Follow copied tags correctly. (#312272)
+
bzr-svn 0.5.0~rc1 2008-12-08
CHANGES
=== modified file 'revmeta.py'
--- a/revmeta.py 2009-01-13 00:48:46 +0000
+++ b/revmeta.py 2009-01-13 03:18:11 +0000
@@ -992,7 +992,6 @@
return revmeta
unusual = set()
- remembered = dict()
for (paths, revnum, revprops) in self._provider._log.iter_changes(
self.prefixes, self.from_revnum, self.to_revnum, pb=pb):
bps = {}
@@ -1001,8 +1000,13 @@
pb.update("discovering revisions", revnum-self.to_revnum,
self.from_revnum-self.to_revnum)
- for bp, mbs in remembered.iteritems():
- metabranches_history[revnum][bp].update(mbs)
+ # Import all metabranches_history where key > revnum
+ from bzrlib.trace import mutter
+ mutter('size %r' % len(metabranches_history))
+ for x in [r for r in metabranches_history if r > revnum]:
+ for bp in metabranches_history[x].keys():
+ metabranches_history[revnum][bp].update(metabranches_history[x][bp])
+ del metabranches_history[x][bp]
for bp, mbs in metabranches_history[revnum].iteritems():
if not bp in self._metabranches:
self._metabranches[bp] = iter(mbs).next()
@@ -1029,6 +1033,13 @@
# Mention deletes
for d in deletes:
yield ("delete", p)
+
+ for bp, mb in bps.items():
+ revmeta = process_new_rev(bp, mb, revnum, paths, revprops)
+ if (bp in paths and paths[bp][0] in ('A', 'R') and
+ paths[bp][1] is None):
+ revmeta._set_direct_lhs_parent_revmeta(None)
+ yield "revision", revmeta
# Apply renames and the like for the next round
for new_name, old_name, old_rev in changes.apply_reverse_changes(
@@ -1053,16 +1064,7 @@
metabranches_history[old_rev][old_name].add(data)
if not self.layout.is_branch_or_tag(old_name, project):
unusual_history[old_rev].add(old_name)
-
- for bp, mb in bps.items():
- revmeta = process_new_rev(bp, mb, revnum, paths, revprops)
- if (bp in paths and paths[bp][0] in ('A', 'R') and
- paths[bp][1] is None):
- revmeta._set_direct_lhs_parent_revmeta(None)
- yield "revision", revmeta
self._last_revnum = revnum
- remembered = metabranches_history[revnum]
- del metabranches_history[revnum]
def filter_revisions(it):
=== modified file 'tests/test_revmeta.py'
--- a/tests/test_revmeta.py 2009-01-12 22:01:32 +0000
+++ b/tests/test_revmeta.py 2009-01-13 03:18:11 +0000
@@ -178,7 +178,7 @@
class FakeRevision(object):
def __init__(self, path, revnum):
- self.path = path
+ self.branch_path = path
self.revnum = revnum
self._parent_revmeta_set = False
self.parent_revmeta = None
@@ -193,11 +193,11 @@
revmeta.children.add(self)
def __repr__(self):
- return "FakeRevision(%r,%r)" % (self.path, self.revnum)
+ return "FakeRevision(%r,%r)" % (self.branch_path, self.revnum)
def __eq__(self, other):
return (type(self) == type(other) and
- self.path == other.path and
+ self.branch_path == other.branch_path and
self.revnum == other.revnum)
@@ -304,7 +304,7 @@
4: { "python/tags/bla": ('A', 'python/trunk', 2)}})
rev1 = browser.next()
self.assertEquals(('revision', FakeRevision('python/tags/bla',4)), rev1)
- self.assertTrue(rev1[1]._parent_revmeta_set)
rev2 = browser.next()
self.assertEquals(('revision', FakeRevision('python/trunk',1)), rev2)
self.assertRaises(StopIteration, browser.next)
+ self.assertTrue(rev1[1]._parent_revmeta_set)
More information about the bazaar-commits
mailing list