Rev 1706: Cherrypick fix for modification of sets during iteration. in http://people.samba.org/bzr/jelmer/bzr-svn/trunk
Jelmer Vernooij
jelmer at samba.org
Fri Sep 5 21:55:42 BST 2008
At http://people.samba.org/bzr/jelmer/bzr-svn/trunk
------------------------------------------------------------
revno: 1706
revision-id: jelmer at samba.org-20080905205536-05rbn2vlqzzzziil
parent: jelmer at samba.org-20080905202310-ku283g5ylf22ovyt
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Fri 2008-09-05 22:55:36 +0200
message:
Cherrypick fix for modification of sets during iteration.
modified:
NEWS news-20061231030336-h9fhq245ie0de8bs-1
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
=== modified file 'NEWS'
--- a/NEWS 2008-09-04 17:02:26 +0000
+++ b/NEWS 2008-09-05 20:55:36 +0000
@@ -4,6 +4,8 @@
* Fix compatibility with Subversion 1.4 on Windows.
+ * Fix bug modifying set of right hand side revisions during fetch. (#264740)
+
bzr-svn 0.4.12 2008-09-01
BUG FIXES
=== modified file 'fetch.py'
--- a/fetch.py 2008-08-31 18:31:05 +0000
+++ b/fetch.py 2008-09-05 20:55:36 +0000
@@ -650,7 +650,7 @@
checked = set()
if revision_id in checked:
return []
- extra = set()
+ extra = list()
def check_revid(revision_id):
revs = []
meta_map = {}
@@ -673,7 +673,7 @@
if revid in checked:
# This revision (and its ancestry) has already been checked
break
- extra.update(parent_ids[1:])
+ extra.extend(parent_ids[1:])
if not self.target.has_revision(revid):
revs.append(revid)
elif not find_ghosts:
@@ -684,7 +684,8 @@
needed = check_revid(revision_id)
- for revid in extra:
+ while len(extra) > 0:
+ revid = extra.pop()
if revid not in checked:
needed += check_revid(revid)
@@ -700,7 +701,7 @@
:param revids: Revision ids to copy.
:param pb: Optional progress bar
"""
- raise NotImplementedError(self._copy_revisions_replay)
+ raise NotImplementedError(self._fetch_replay)
def _fetch_switch(self, repos_root, revids, pb=None):
"""Copy a set of related revisions using svn.ra.switch.
More information about the bazaar-commits
mailing list