Rev 1655: Deal with moving branch parents. in http://people.samba.org/bzr/jelmer/bzr-svn/trunk

Jelmer Vernooij jelmer at samba.org
Tue Aug 26 01:39:24 BST 2008


At http://people.samba.org/bzr/jelmer/bzr-svn/trunk

------------------------------------------------------------
revno: 1655
revision-id: jelmer at samba.org-20080826003921-jzwhvfzv7549hutx
parent: jelmer at samba.org-20080826002501-arkzcguo81eea0gt
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Tue 2008-08-26 02:39:21 +0200
message:
  Deal with moving branch parents.
modified:
  repository.py                  repository.py-20060306123302-1f8c5069b3fe0265
=== modified file 'repository.py'
--- a/repository.py	2008-08-26 00:19:08 +0000
+++ b/repository.py	2008-08-26 00:39:21 +0000
@@ -773,6 +773,22 @@
         created = set()
         for (paths, revnum, revprops) in self._log.iter_changes(None, from_revnum, to_revnum):
             for p in paths:
+                if layout.is_branch_parent(p):
+                    if paths[p][0] in ('R', 'D'):
+                        deleted.add(p)
+                    elif paths[p][1] is not None:
+                        parents = [p]
+                        while parents:
+                            p = parents.pop()
+                            try:
+                                for c in self.transport.get_dir(p, revnum)[0].keys():
+                                    n = p+"/"+c
+                                    if layout.is_branch(n):
+                                        created.add(n)
+                                    elif layout.is_branch_parent(n):
+                                        parents.append(n)
+                            except SubversionException, (_, errors.ERR_FS_NOT_DIRECTORY):
+                                pass
                 try:
                     (pt, project, bp, rp) = layout.parse(p)
                     if pt == "branch":
@@ -781,8 +797,7 @@
                         elif paths[p][0] == 'D' and rp == "":
                             deleted.add(bp)
                 except errors.InvalidSvnBranchPath:
-                    if paths[p][0] == 'D':
-                        deleted.add(p)
+                    pass
         return deleted, created
 
     @needs_read_lock




More information about the bazaar-commits mailing list