tests/test-convert-svn-encoding.t
author Brodie Rao <brodie@bitheap.org>
Wed, 22 Sep 2010 16:05:59 -0500
changeset 12373 58885f00b998
parent 12370 f98010f57a5e
child 12377 a5b77eb0409b
permissions -rw-r--r--
tests: don't match blank output lines as regexes in unified tests Currently, the following unified test will pass: $ echo foo A blank output line (a line containing just two spaces) will match any output. The patch modifies the unified test runner to ignore empty strings strings when do regular expression matching.


  $ "$TESTDIR/hghave" svn svn-bindings || exit 80

  $ cat > $HGRCPATH <<EOF
  > [extensions]
  > convert = 
  > graphlog =
  > EOF

  $ svnadmin create svn-repo
  $ svnadmin load -q svn-repo < "$TESTDIR/svn/encoding.svndump"

Convert while testing all possible outputs

  $ hg --debug convert svn-repo A-hg
  initializing destination A-hg repository
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo
  run hg sink pre-conversion action
  scanning source...
  found trunk at 'trunk'
  found tags at 'tags'
  found branches at 'branches'
  found branch branché at 5
  found branch branchée at 6
  scanning: 1 revisions
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/trunk
  fetching revision log for "/trunk" from 4 to 0
  parsing revision 4 (2 changes)
  parsing revision 3 (4 changes)
  parsing revision 2 (3 changes)
  parsing revision 1 (3 changes)
  no copyfrom path, don't know what to do.
  '/branches' is not under '/trunk', ignoring
  '/tags' is not under '/trunk', ignoring
  scanning: 2 revisions
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9
  fetching revision log for "/branches/branché" from 5 to 0
  parsing revision 5 (1 changes)
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9
  found parent of branch /branches/branché at 4: /trunk
  scanning: 3 revisions
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e
  fetching revision log for "/branches/branchée" from 6 to 0
  parsing revision 6 (1 changes)
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e
  found parent of branch /branches/branchée at 5: /branches/branché
  scanning: 4 revisions
  scanning: 5 revisions
  scanning: 6 revisions
  sorting...
  converting...
  5 init projA
  source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/trunk@1
  converting: 0/6 revisions (0.00%)
  4 hello
  source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/trunk@2
  converting: 1/6 revisions (16.67%)
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/trunk
  scanning paths: /trunk/à 0/3 (0.00%)
  scanning paths: /trunk/à/é 1/3 (33.33%)
  scanning paths: /trunk/é 2/3 (66.67%)
  à/é
  getting files: à/é 1/2 (50.00%)
  é
  getting files: é 2/2 (100.00%)
  3 copy files
  source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/trunk@3
  converting: 2/6 revisions (33.33%)
  scanning paths: /trunk/à 0/4 (0.00%)
  gone from -1
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/trunk
  scanning paths: /trunk/è 1/4 (25.00%)
  copied to è from é@2
  scanning paths: /trunk/é 2/4 (50.00%)
  gone from -1
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/trunk
  scanning paths: /trunk/ù 3/4 (75.00%)
  mark /trunk/ù came from à:2
  à/é
  getting files: à/é 1/4 (25.00%)
  è
  getting files: è 2/4 (50.00%)
   è: copy é:6b67ccefd5ce6de77e7ead4f5292843a0255329f
  é
  getting files: é 3/4 (75.00%)
  ù/é
  getting files: ù/é 4/4 (100.00%)
   ù/é: copy à/é:a9092a3d84a37b9993b5c73576f6de29b7ea50f6
  2 remove files
  source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/trunk@4
  converting: 3/6 revisions (50.00%)
  scanning paths: /trunk/è 0/2 (0.00%)
  gone from -1
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/trunk
  scanning paths: /trunk/ù 1/2 (50.00%)
  gone from -1
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/trunk
  è
  getting files: è 1/2 (50.00%)
  ù/é
  getting files: ù/é 2/2 (100.00%)
  1 branch to branch?
  source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/branches/branch?@5
  converting: 4/6 revisions (66.67%)
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9
  scanning paths: /branches/branché 0/1 (0.00%)
  0 branch to branch?e
  source: svn:afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af/branches/branch?e@6
  converting: 5/6 revisions (83.33%)
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e
  scanning paths: /branches/branchée 0/1 (0.00%)
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo
  reparent to file://.*/test-convert-svn-encoding.t/svn-repo/branches/branch%C3%A9e
  updating tags
  .hgtags
  run hg sink post-conversion action
  $ cd A-hg
  $ hg up
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved

Check tags are in UTF-8

  $ python -c "print '\n'.join([('%r' % l) for l in file('.hgtags', 'rb').readlines()])"
  '221c3fdaf24df5f14c0a64c597581e2eacfb47bb branch\xc3\xa9e\n'
  '7a40952c2db29cf00d9e31df3749e98d8a4bdcbf branch\xc3\xa9\n'

  $ cd ..