# HG changeset patch # User Patrick Mezard # Date 1200921338 -3600 # Node ID 7c2921a600356c935e63b3f3e0fabef9de6d8be0 # Parent d67cfe0d4714a28a448475d31a8a3ab22453f42a# Parent a893610f6f0c432ace9e65931aefd512f736cff0 Merge with crew-stable diff -r d67cfe0d4714 -r 7c2921a60035 hgext/convert/subversion.py --- a/hgext/convert/subversion.py Sun Jan 20 08:12:07 2008 -0200 +++ b/hgext/convert/subversion.py Mon Jan 21 14:15:38 2008 +0100 @@ -598,7 +598,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, to_revnum): if from_revnum < to_revnum: diff -r d67cfe0d4714 -r 7c2921a60035 mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Jan 20 08:12:07 2008 -0200 +++ b/mercurial/localrepo.py Mon Jan 21 14:15:38 2008 +0100 @@ -687,6 +687,8 @@ p1=None, p2=None, extra={}, empty_ok=False): wlock = lock = tr = None valid = 0 # don't save the dirstate if this isn't set + if files: + files = util.unique(files) try: commit = [] remove = [] diff -r d67cfe0d4714 -r 7c2921a60035 mercurial/util.py diff -r d67cfe0d4714 -r 7c2921a60035 tests/test-convert-svn-branches.out --- a/tests/test-convert-svn-branches.out Sun Jan 20 08:12:07 2008 -0200 +++ b/tests/test-convert-svn-branches.out Mon Jan 21 14:15:38 2008 +0100 @@ -89,7 +89,7 @@ | | | | o | 3 change letter files: letter.txt | | | -+---o 2 branch trunk, remove letter3 files: letter.txt letter.txt letter2.txt letter2.txt ++---o 2 branch trunk, remove letter3 files: letter.txt letter2.txt | | | o 1 hello files: letter.txt letter2.txt letter3.txt |/ diff -r d67cfe0d4714 -r 7c2921a60035 tests/test-convert-svn-source --- a/tests/test-convert-svn-source Sun Jan 20 08:12:07 2008 -0200 +++ b/tests/test-convert-svn-source Mon Jan 21 14:15:38 2008 +0100 @@ -103,13 +103,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 d67cfe0d4714 -r 7c2921a60035 tests/test-convert-svn-source.out --- a/tests/test-convert-svn-source.out Sun Jan 20 08:12:07 2008 -0200 +++ b/tests/test-convert-svn-source.out Mon Jan 21 14:15:38 2008 +0100 @@ -82,14 +82,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 @@ -101,9 +103,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 |