diff hgsubversion/hg_delta_editor.py @ 377:7e9269555e72

Move HgChangeReceiver.branches_in_paths() to the stupid module.
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Sat, 30 May 2009 11:11:04 -0500
parents 9327e9325645
children eeefbe104087
line wrap: on
line diff
--- a/hgsubversion/hg_delta_editor.py
+++ b/hgsubversion/hg_delta_editor.py
@@ -215,69 +215,6 @@ class HgChangeReceiver(delta.Editor):
         pickle_atomic(self.branches, self.branch_info_file, self.meta_data_dir)
         pickle_atomic(self.tags, self.tag_info_file, self.meta_data_dir)
 
-    def branches_in_paths(self, paths, revnum, checkpath, listdir):
-        '''Given a list of paths, return mapping of all branches touched
-        to their branch path.
-        '''
-        branches = {}
-        paths_need_discovery = []
-        for p in paths:
-            relpath, branch, branchpath = self._split_branch_path(p)
-            if relpath is not None:
-                branches[branch] = branchpath
-            elif paths[p].action == 'D' and not self._is_path_tag(p):
-                ln = self._localname(p)
-                # must check in branches_to_delete as well, because this runs after we
-                # already updated the branch map
-                if ln in self.branches or ln in self.branches_to_delete:
-                    branches[self._localname(p)] = p
-            else:
-                paths_need_discovery.append(p)
-        if paths_need_discovery:
-            paths_need_discovery = [(len(p), p) for p in paths_need_discovery]
-            paths_need_discovery.sort()
-            paths_need_discovery = [p[1] for p in paths_need_discovery]
-            actually_files = []
-            while paths_need_discovery:
-                p = paths_need_discovery.pop(0)
-                path_could_be_file = True
-                ind = 0
-                while ind < len(paths_need_discovery) and not paths_need_discovery:
-                    if op.startswith(p):
-                        path_could_be_file = False
-                    ind += 1
-                if path_could_be_file:
-                    if checkpath(p, revnum) == 'f':
-                        actually_files.append(p)
-                    # if there's a copyfrom_path and there were files inside that copyfrom,
-                    # we need to detect those branches. It's a little thorny and slow, but
-                    # seems to be the best option.
-                    elif paths[p].copyfrom_path and not p.startswith('tags/'):
-                        paths_need_discovery.extend(['%s/%s' % (p,x[0])
-                                                     for x in listdir(p, revnum)
-                                                     if x[1] == 'f'])
-            if actually_files:
-                filepaths = [p.split('/') for p in actually_files]
-                filepaths = [(len(p), p) for p in filepaths]
-                filepaths.sort()
-                filepaths = [p[1] for p in filepaths]
-                while filepaths:
-                    path = filepaths.pop(0)
-                    parentdir = '/'.join(path[:-1])
-                    filepaths = [p for p in filepaths if not '/'.join(p).startswith(parentdir)]
-                    branchpath = self._normalize_path(parentdir)
-                    if branchpath.startswith('tags/'):
-                        continue
-                    branchname = self._localname(branchpath)
-                    if branchpath.startswith('trunk/'):
-                        branches[self._localname('trunk')] = 'trunk'
-                        continue
-                    if branchname and branchname.startswith('../'):
-                        continue
-                    branches[branchname] = branchpath
-
-        return branches
-
     def _path_and_branch_for_path(self, path, existing=True):
         return self._split_branch_path(path, existing=existing)[:2]