--- a/hgext/convert/subversion.py Mon Apr 14 22:31:34 2008 +0200
+++ b/hgext/convert/subversion.py Mon Apr 14 22:31:34 2008 +0200
@@ -553,20 +553,19 @@
kind = svn.ra.check_path(self.ra, entrypath, revnum)
if kind == svn.core.svn_node_file:
entries.append(self.recode(entry))
-
- if not ent.copyfrom_path:
+ if not ent.copyfrom_path or not parents:
continue
- copyfrom_path = self.getrelpath(ent.copyfrom_path)
+ # Copy sources not in parent revisions cannot be represented,
+ # ignore their origin for now
+ pmodule, prevnum = self.revsplit(parents[0])[1:]
+ if ent.copyfrom_rev < prevnum:
+ continue
+ copyfrom_path = self.getrelpath(ent.copyfrom_path, pmodule)
if not copyfrom_path:
continue
self.ui.debug("copied to %s from %s@%s\n" %
(entrypath, copyfrom_path, ent.copyfrom_rev))
- # It's probably important for hg that the source
- # exists in the revision's parent, not just the
- # ent.copyfrom_rev
- fromkind = svn.ra.check_path(self.ra, copyfrom_path, ent.copyfrom_rev)
- if fromkind != 0:
- copies[self.recode(entry)] = self.recode(copyfrom_path)
+ copies[self.recode(entry)] = self.recode(copyfrom_path)
elif kind == 0: # gone, but had better be a deleted *file*
self.ui.debug("gone from %s\n" % ent.copyfrom_rev)