# HG changeset patch # User Patrick Mezard # Date 1200906275 -3600 # Node ID a893610f6f0c432ace9e65931aefd512f736cff0 # Parent f791a2acf11bc94d68d2d555696d623dbd8c2733 convert: enforce svn_source.getchanges() files unicity diff -r f791a2acf11b -r a893610f6f0c hgext/convert/subversion.py --- a/hgext/convert/subversion.py Mon Jan 21 10:02:32 2008 +0100 +++ b/hgext/convert/subversion.py Mon Jan 21 10:04:35 2008 +0100 @@ -544,7 +544,7 @@ copies[self.recode(copyto_entry)] = self.recode(entry) # copy from quux splort/quuxfile - return (entries, copies) + return (util.unique(entries), copies) def _fetch_revisions(self, from_revnum = 0, to_revnum = 347): self.child_cset = None diff -r f791a2acf11b -r a893610f6f0c tests/test-convert-svn --- a/tests/test-convert-svn Mon Jan 21 10:02:32 2008 +0100 +++ b/tests/test-convert-svn Mon Jan 21 10:04:35 2008 +0100 @@ -96,13 +96,16 @@ echo % update svn repository again cd A echo "see second letter" >> letter.txt -echo "nice to meet you" > letter2.txt -svn add letter2.txt +# Put it in a subdirectory to test duplicate file records +# from svn source (issue 714) +mkdir todo +echo "nice to meet you" > todo/letter2.txt +svn add todo svn ci -m "second letter" svn copy -m "tag v0.2" $svnurl/trunk $svnurl/tags/v0.2 -echo "blah-blah-blah" >> letter2.txt +echo "blah-blah-blah" >> todo/letter2.txt svn ci -m "work in progress" cd .. diff -r f791a2acf11b -r a893610f6f0c tests/test-convert-svn.out --- a/tests/test-convert-svn.out Mon Jan 21 10:02:32 2008 +0100 +++ b/tests/test-convert-svn.out Mon Jan 21 10:04:35 2008 +0100 @@ -75,14 +75,16 @@ 0 nice day updating tags % update svn repository again -A letter2.txt +A todo +A todo/letter2.txt Sending letter.txt -Adding letter2.txt +Adding todo +Adding todo/letter2.txt Transmitting file data .. Committed revision 9. Committed revision 10. -Sending letter2.txt +Sending todo/letter2.txt Transmitting file data . Committed revision 11. % test incremental conversion @@ -95,9 +97,9 @@ updating tags o 7 update tags files: .hgtags | -o 6 work in progress files: letter2.txt +o 6 work in progress files: todo/letter2.txt | -o 5 second letter files: letter.txt letter2.txt +o 5 second letter files: letter.txt todo/letter2.txt | o 4 update tags files: .hgtags |