comparison hgext/convert/subversion.py @ 6557:f2bd49752f0d

merge from crew-stable
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Wed, 16 Apr 2008 12:15:43 +0200
parents 2af1b9de62b3 0bb76d168437
children c9b8d2565b92
comparison
equal deleted inserted replaced
6556:f2abfca4beb8 6557:f2bd49752f0d
686 copyfrompath = ent.copyfrom_path.decode(self.encoding) 686 copyfrompath = ent.copyfrom_path.decode(self.encoding)
687 copyfrompath = self.getrelpath(copyfrompath, pmodule) 687 copyfrompath = self.getrelpath(copyfrompath, pmodule)
688 if not copyfrompath: 688 if not copyfrompath:
689 continue 689 continue
690 copyfrom[path] = ent 690 copyfrom[path] = ent
691 self.ui.debug("mark %s came from %s:%d\n" 691 self.ui.debug("mark %s came from %s:%d\n"
692 % (path, copyfrompath, ent.copyfrom_rev)) 692 % (path, copyfrompath, ent.copyfrom_rev))
693 children = self._find_children(ent.copyfrom_path, ent.copyfrom_rev) 693 children = self._find_children(ent.copyfrom_path, ent.copyfrom_rev)
694 children.sort() 694 children.sort()
695 for child in children: 695 for child in children:
696 entrypath = self.getrelpath("/" + child, pmodule) 696 entrypath = self.getrelpath("/" + child, pmodule)
736 orig_paths.sort() 736 orig_paths.sort()
737 root_paths = [(p,e) for p,e in orig_paths if self.module.startswith(p)] 737 root_paths = [(p,e) for p,e in orig_paths if self.module.startswith(p)]
738 if root_paths: 738 if root_paths:
739 path, ent = root_paths[-1] 739 path, ent = root_paths[-1]
740 if ent.copyfrom_path: 740 if ent.copyfrom_path:
741 # If dir was moved while one of its file was removed 741 # If dir was moved while one of its file was removed
742 # the log may look like: 742 # the log may look like:
743 # A /dir (from /dir:x) 743 # A /dir (from /dir:x)
744 # A /dir/a (from /dir/a:y) 744 # A /dir/a (from /dir/a:y)
745 # A /dir/b (from /dir/b:z) 745 # A /dir/b (from /dir/b:z)
746 # ... 746 # ...
747 # for all remaining children. 747 # for all remaining children.
748 # Let's take the highest child element from rev as source. 748 # Let's take the highest child element from rev as source.
749 copies = [(p,e) for p,e in orig_paths[:-1] 749 copies = [(p,e) for p,e in orig_paths[:-1]
750 if isdescendantof(ent.copyfrom_path, e.copyfrom_path)] 750 if isdescendantof(ent.copyfrom_path, e.copyfrom_path)]
751 fromrev = max([e.copyfrom_rev for p,e in copies] + [ent.copyfrom_rev]) 751 fromrev = max([e.copyfrom_rev for p,e in copies] + [ent.copyfrom_rev])
752 branched = True 752 branched = True
753 newpath = ent.copyfrom_path + self.module[len(path):] 753 newpath = ent.copyfrom_path + self.module[len(path):]
754 # ent.copyfrom_rev may not be the actual last revision 754 # ent.copyfrom_rev may not be the actual last revision