# HG changeset patch # User Patrick Mezard # Date 2008-04-07 09:59:20 # Node ID 2bdd43246c950d81fb82cceb861427ec06a1094a # Parent 204a2ca249b6fbbc6f5d8fb01f71280014a9a195 convert: check svn branches are directories diff --git a/hgext/convert/subversion.py b/hgext/convert/subversion.py --- a/hgext/convert/subversion.py +++ b/hgext/convert/subversion.py @@ -247,6 +247,10 @@ class svn_source(converter_source): def getheads(self): + def isdir(path, revnum): + kind = svn.ra.check_path(self.ra, path, revnum) + return kind == svn.core.svn_node_dir + def getcfgpath(name, rev): cfgpath = self.ui.config('convert', 'svn.' + name) if cfgpath is not None and cfgpath.strip() == '': @@ -288,6 +292,8 @@ class svn_source(converter_source): self.ctx) for branch in branchnames.keys(): module = '%s/%s/%s' % (oldmodule, branches, branch) + if not isdir(module, self.last_changed): + continue brevid = self.latest(module, self.last_changed) if not brevid: self.ui.note(_('ignoring empty branch %s\n') % diff --git a/tests/test-convert-svn-branches b/tests/test-convert-svn-branches --- a/tests/test-convert-svn-branches +++ b/tests/test-convert-svn-branches @@ -38,7 +38,9 @@ cd A echo hello > trunk/letter.txt echo hey > trunk/letter2.txt echo ho > trunk/letter3.txt -svn add trunk/letter.txt trunk/letter2.txt trunk/letter3.txt +# Add a file within branches, used to confuse branch detection +echo a > branches/readme.txt +svn add trunk/letter.txt trunk/letter2.txt trunk/letter3.txt branches/readme.txt svn ci -m hello echo % branch to old letters diff --git a/tests/test-convert-svn-branches.out b/tests/test-convert-svn-branches.out --- a/tests/test-convert-svn-branches.out +++ b/tests/test-convert-svn-branches.out @@ -12,10 +12,12 @@ Checked out revision 1. A trunk/letter.txt A trunk/letter2.txt A trunk/letter3.txt +A branches/readme.txt +Adding branches/readme.txt Adding trunk/letter.txt Adding trunk/letter2.txt Adding trunk/letter3.txt -Transmitting file data ... +Transmitting file data .... Committed revision 2. % branch to old letters A branches/old