# HG changeset patch # User Patrick Mezard # Date 1245619025 -7200 # Node ID 0332f8b44e540c7f8731b01bd492da3f9189723f # Parent 0593c5b5b1f061076ccf7db2d3507fe083ba8aec convert/svn: test svn tags encoding diff -r 0593c5b5b1f0 -r 0332f8b44e54 hgext/convert/common.py --- a/hgext/convert/common.py Sun Jun 21 23:17:02 2009 +0200 +++ b/hgext/convert/common.py Sun Jun 21 23:17:05 2009 +0200 @@ -103,7 +103,10 @@ raise NotImplementedError() def gettags(self): - """Return the tags as a dictionary of name: revision""" + """Return the tags as a dictionary of name: revision + + Tag names must be UTF-8 strings. + """ raise NotImplementedError() def recode(self, s, encoding=None): @@ -198,7 +201,9 @@ def puttags(self, tags): """Put tags into sink. - tags: {tagname: sink_rev_id, ...}""" + + tags: {tagname: sink_rev_id, ...} where tagname is an UTF-8 string. + """ raise NotImplementedError() def setbranch(self, branch, pbranches): diff -r 0593c5b5b1f0 -r 0332f8b44e54 tests/svn/encoding.svndump --- a/tests/svn/encoding.svndump Sun Jun 21 23:17:02 2009 +0200 +++ b/tests/svn/encoding.svndump Sun Jun 21 23:17:05 2009 +0200 @@ -1,6 +1,6 @@ SVN-fs-dump-format-version: 2 -UUID: 7ec0009b-ac71-43a6-9416-7fc295ee5ca1 +UUID: afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af Revision-number: 0 Prop-content-length: 56 @@ -9,7 +9,7 @@ K 8 svn:date V 27 -2009-06-21T15:50:22.535630Z +2009-06-21T16:34:55.835945Z PROPS-END Revision-number: 1 @@ -27,7 +27,7 @@ K 8 svn:date V 27 -2009-06-21T15:50:22.584588Z +2009-06-21T16:34:55.909545Z PROPS-END Node-path: branches @@ -72,7 +72,7 @@ K 8 svn:date V 27 -2009-06-21T15:50:23.143007Z +2009-06-21T16:34:56.150049Z PROPS-END Node-path: trunk/à @@ -125,7 +125,7 @@ K 8 svn:date V 27 -2009-06-21T15:50:26.088415Z +2009-06-21T16:34:59.089402Z PROPS-END Node-path: trunk/è @@ -167,7 +167,7 @@ K 8 svn:date V 27 -2009-06-21T15:50:27.162784Z +2009-06-21T16:35:00.165121Z PROPS-END Node-path: trunk/è @@ -193,7 +193,7 @@ K 8 svn:date V 27 -2009-06-21T15:50:30.079728Z +2009-06-21T16:35:03.079138Z PROPS-END Node-path: branches/branché @@ -218,7 +218,7 @@ K 8 svn:date V 27 -2009-06-21T15:50:33.072456Z +2009-06-21T16:35:06.060801Z PROPS-END Node-path: branches/branchée @@ -228,3 +228,53 @@ Node-copyfrom-path: branches/branché +Revision-number: 7 +Prop-content-length: 110 +Content-length: 110 + +K 7 +svn:log +V 9 +tag trunk +K 10 +svn:author +V 7 +pmezard +K 8 +svn:date +V 27 +2009-06-21T16:35:09.061530Z +PROPS-END + +Node-path: tags/branché +Node-kind: dir +Node-action: add +Node-copyfrom-rev: 6 +Node-copyfrom-path: trunk + + +Revision-number: 8 +Prop-content-length: 114 +Content-length: 114 + +K 7 +svn:log +V 12 +tag branché +K 10 +svn:author +V 7 +pmezard +K 8 +svn:date +V 27 +2009-06-21T16:35:11.068562Z +PROPS-END + +Node-path: tags/branchée +Node-kind: dir +Node-action: add +Node-copyfrom-rev: 6 +Node-copyfrom-path: branches/branchée + + diff -r 0593c5b5b1f0 -r 0332f8b44e54 tests/svn/svndump-encoding.sh --- a/tests/svn/svndump-encoding.sh Sun Jun 21 23:17:02 2009 +0200 +++ b/tests/svn/svndump-encoding.sh Sun Jun 21 23:17:05 2009 +0200 @@ -45,6 +45,13 @@ svn cp branches/branché branches/branchée echo a >> branches/branché/a svn ci -m 'branch to branchée' + +# Create tag with weird name +svn up +svn cp trunk tags/branché +svn ci -m 'tag trunk' +svn cp branches/branchée tags/branchée +svn ci -m 'tag branché' cd .. svnadmin dump svn-repo > ../encoding.svndump diff -r 0593c5b5b1f0 -r 0332f8b44e54 tests/test-convert-svn-encoding --- a/tests/test-convert-svn-encoding Sun Jun 21 23:17:02 2009 +0200 +++ b/tests/test-convert-svn-encoding Sun Jun 21 23:17:05 2009 +0200 @@ -10,4 +10,8 @@ echo '% convert while testing all possible outputs' hg --debug convert svn-repo A-hg > /dev/null - +cd A-hg +hg up +echo '% check tags are in UTF-8' +python -c "print '\n'.join([('%r' % l) for l in file('.hgtags', 'rb').readlines()])" +cd .. diff -r 0593c5b5b1f0 -r 0332f8b44e54 tests/test-convert-svn-encoding.out --- a/tests/test-convert-svn-encoding.out Sun Jun 21 23:17:02 2009 +0200 +++ b/tests/test-convert-svn-encoding.out Sun Jun 21 23:17:05 2009 +0200 @@ -1,1 +1,5 @@ % convert while testing all possible outputs +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +% check tags are in UTF-8 +'1c1b4062874e8197a68e7ce9e498479a37d0215c branch\xc3\xa9e\n' +'edc96568720ef79eefa6372677b18d855de3abee branch\xc3\xa9\n'