tests/test-convert-svn-source.t
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Thu, 03 Nov 2016 15:15:47 +0100
changeset 30299 bb2dfc0ea5b4
parent 28533 dfd5a6830ea7
child 35400 4441705b7111
permissions -rw-r--r--
color: sort output of 'debugcolor' The previous ordering were provided by the set. The new output is more stable and rational. In addition we have some logic to keep the '_background' version together to help readability.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 20420
diff changeset
     1
#require svn svn-bindings
5255
37c610c41ed6 Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     2
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
     3
  $ filter_svn_output () {
28533
dfd5a6830ea7 tests: make tests for convert with svn portable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28469
diff changeset
     4
  >     egrep -v 'Committing|Updating|(^$)' | sed -e 's/done$//' || true
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
     5
  > }
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
     6
13519
43b3b761d9d1 tests: don't overwrite HGRCPATH
Martin Geisler <mg@aragost.com>
parents: 13494
diff changeset
     7
  $ cat >> $HGRCPATH <<EOF
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
     8
  > [extensions]
17347
2da47de36b6f check-code: fix check for trailing whitespace on continued lines too
Mads Kiilerich <mads@kiilerich.com>
parents: 17044
diff changeset
     9
  > convert =
13494
3178aca36b0f convert.svn: branch name which equals trunk means `default' branch (issue2653)
Pavel Boldin <boldin.pavel@gmail.com>
parents: 12377
diff changeset
    10
  > [convert]
3178aca36b0f convert.svn: branch name which equals trunk means `default' branch (issue2653)
Pavel Boldin <boldin.pavel@gmail.com>
parents: 12377
diff changeset
    11
  > svn.trunk = mytrunk
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    12
  > EOF
5255
37c610c41ed6 Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    13
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    14
  $ svnadmin create svn-repo
17033
0413f68da85c tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents: 16525
diff changeset
    15
  $ SVNREPOPATH=`pwd`/svn-repo
0413f68da85c tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents: 16525
diff changeset
    16
#if windows
22947
c63a09b6b337 tests: use $PYTHON instead of hardcoding python
Augie Fackler <raf@durin42.com>
parents: 22300
diff changeset
    17
  $ SVNREPOURL=file:///`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
17033
0413f68da85c tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents: 16525
diff changeset
    18
#else
22947
c63a09b6b337 tests: use $PYTHON instead of hardcoding python
Augie Fackler <raf@durin42.com>
parents: 22300
diff changeset
    19
  $ SVNREPOURL=file://`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
17033
0413f68da85c tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents: 16525
diff changeset
    20
#endif
19122
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
    21
  $ INVALIDREVISIONID=svn:x2147622-4a9f-4db4-a8d3-13562ff547b2/proj%20B/mytrunk@1
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
    22
  $ VALIDREVISIONID=svn:a2147622-4a9f-4db4-a8d3-13562ff547b2/proj%20B/mytrunk/mytrunk@1
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    23
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    24
Now test that it works with trunk/tags layout, but no branches yet.
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    25
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    26
Initial svn import
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    27
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    28
  $ mkdir projB
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    29
  $ cd projB
13494
3178aca36b0f convert.svn: branch name which equals trunk means `default' branch (issue2653)
Pavel Boldin <boldin.pavel@gmail.com>
parents: 12377
diff changeset
    30
  $ mkdir mytrunk
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    31
  $ mkdir tags
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    32
  $ cd ..
5854
8b95f598097c convert: separate trunk detection from branch layout detection
Edouard Gomez <ed.gomez@free.fr>
parents: 5804
diff changeset
    33
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
    34
  $ svn import -m "init projB" projB "$SVNREPOURL/proj%20B" | filter_svn_output | sort
17044
3dd6da761fff tests: add missing path globbing for Windows in svn tests
Mads Kiilerich <mads@kiilerich.com>
parents: 17033
diff changeset
    35
  Adding         projB/mytrunk (glob)
3dd6da761fff tests: add missing path globbing for Windows in svn tests
Mads Kiilerich <mads@kiilerich.com>
parents: 17033
diff changeset
    36
  Adding         projB/tags (glob)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    37
  Committed revision 1.
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    38
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    39
Update svn repository
5854
8b95f598097c convert: separate trunk detection from branch layout detection
Edouard Gomez <ed.gomez@free.fr>
parents: 5804
diff changeset
    40
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
    41
  $ svn co "$SVNREPOURL/proj%20B/mytrunk" B | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    42
  Checked out revision 1.
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    43
  $ cd B
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    44
  $ echo hello > 'letter .txt'
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
    45
  $ svn add 'letter .txt' | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    46
  A         letter .txt
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
    47
  $ svn ci -m hello | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    48
  Adding         letter .txt
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    49
  Transmitting file data .
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    50
  Committed revision 2.
5854
8b95f598097c convert: separate trunk detection from branch layout detection
Edouard Gomez <ed.gomez@free.fr>
parents: 5804
diff changeset
    51
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23583
diff changeset
    52
  $ svn-safe-append.py world 'letter .txt'
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
    53
  $ svn ci -m world | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    54
  Sending        letter .txt
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    55
  Transmitting file data .
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    56
  Committed revision 3.
5854
8b95f598097c convert: separate trunk detection from branch layout detection
Edouard Gomez <ed.gomez@free.fr>
parents: 5804
diff changeset
    57
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
    58
  $ svn copy -m "tag v0.1" "$SVNREPOURL/proj%20B/mytrunk" "$SVNREPOURL/proj%20B/tags/v0.1" | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    59
  Committed revision 4.
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    60
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23583
diff changeset
    61
  $ svn-safe-append.py 'nice day today!' 'letter .txt'
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
    62
  $ svn ci -m "nice day" | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    63
  Sending        letter .txt
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    64
  Transmitting file data .
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    65
  Committed revision 5.
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    66
  $ cd ..
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    67
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
    68
Convert to hg once and also test localtimezone option
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
    69
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
    70
NOTE: This doesn't check all time zones -- it merely determines that
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
    71
the configuration option is taking effect.
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    72
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
    73
An arbitrary (U.S.) time zone is used here.  TZ=US/Hawaii is selected
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
    74
since it does not use DST (unlike other U.S. time zones) and is always
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
    75
a fixed difference from UTC.
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
    76
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
    77
  $ TZ=US/Hawaii hg convert --config convert.localtimezone=True "$SVNREPOURL/proj%20B" B-hg
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    78
  initializing destination B-hg repository
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    79
  scanning source...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    80
  sorting...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    81
  converting...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    82
  3 init projB
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    83
  2 hello
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    84
  1 world
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    85
  0 nice day
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    86
  updating tags
5854
8b95f598097c convert: separate trunk detection from branch layout detection
Edouard Gomez <ed.gomez@free.fr>
parents: 5804
diff changeset
    87
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    88
Update svn repository again
5854
8b95f598097c convert: separate trunk detection from branch layout detection
Edouard Gomez <ed.gomez@free.fr>
parents: 5804
diff changeset
    89
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    90
  $ cd B
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23583
diff changeset
    91
  $ svn-safe-append.py "see second letter" 'letter .txt'
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    92
  $ echo "nice to meet you" > letter2.txt
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
    93
  $ svn add letter2.txt | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    94
  A         letter2.txt
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
    95
  $ svn ci -m "second letter" | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    96
  Sending        letter .txt
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    97
  Adding         letter2.txt
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    98
  Transmitting file data ..
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
    99
  Committed revision 6.
5854
8b95f598097c convert: separate trunk detection from branch layout detection
Edouard Gomez <ed.gomez@free.fr>
parents: 5804
diff changeset
   100
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
   101
  $ svn copy -m "tag v0.2" "$SVNREPOURL/proj%20B/mytrunk" "$SVNREPOURL/proj%20B/tags/v0.2" | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   102
  Committed revision 7.
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   103
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23583
diff changeset
   104
  $ svn-safe-append.py "blah-blah-blah" letter2.txt
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
   105
  $ svn ci -m "work in progress" | filter_svn_output
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   106
  Sending        letter2.txt
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   107
  Transmitting file data .
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   108
  Committed revision 8.
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   109
  $ cd ..
5854
8b95f598097c convert: separate trunk detection from branch layout detection
Edouard Gomez <ed.gomez@free.fr>
parents: 5804
diff changeset
   110
17033
0413f68da85c tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents: 16525
diff changeset
   111
  $ hg convert -s svn "$SVNREPOURL/proj%20B/non-existent-path" dest
14152
00121103546a convert: handle invalid subversion source paths
Mads Kiilerich <mads@kiilerich.com>
parents: 13519
diff changeset
   112
  initializing destination dest repository
00121103546a convert: handle invalid subversion source paths
Mads Kiilerich <mads@kiilerich.com>
parents: 13519
diff changeset
   113
  abort: no revision found in module /proj B/non-existent-path
00121103546a convert: handle invalid subversion source paths
Mads Kiilerich <mads@kiilerich.com>
parents: 13519
diff changeset
   114
  [255]
00121103546a convert: handle invalid subversion source paths
Mads Kiilerich <mads@kiilerich.com>
parents: 13519
diff changeset
   115
6401
635c57cf0de8 test-convert-svn-source: remove redundant tests
Patrick Mezard <pmezard@gmail.com>
parents: 5954
diff changeset
   116
########################################
635c57cf0de8 test-convert-svn-source: remove redundant tests
Patrick Mezard <pmezard@gmail.com>
parents: 5954
diff changeset
   117
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   118
Test incremental conversion
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   119
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
   120
  $ TZ=US/Hawaii hg convert --config convert.localtimezone=True "$SVNREPOURL/proj%20B" B-hg
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   121
  scanning source...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   122
  sorting...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   123
  converting...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   124
  1 second letter
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   125
  0 work in progress
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   126
  updating tags
5854
8b95f598097c convert: separate trunk detection from branch layout detection
Edouard Gomez <ed.gomez@free.fr>
parents: 5804
diff changeset
   127
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   128
  $ cd B-hg
20117
aa9385f983fa tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents: 19122
diff changeset
   129
  $ hg log -G --template '{rev} {desc|firstline} date: {date|date} files: {files}\n'
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
   130
  o  7 update tags date: * +0000 files: .hgtags (glob)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   131
  |
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
   132
  o  6 work in progress date: * -1000 files: letter2.txt (glob)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   133
  |
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
   134
  o  5 second letter date: * -1000 files: letter .txt letter2.txt (glob)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   135
  |
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
   136
  o  4 update tags date: * +0000 files: .hgtags (glob)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   137
  |
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
   138
  o  3 nice day date: * -1000 files: letter .txt (glob)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   139
  |
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
   140
  o  2 world date: * -1000 files: letter .txt (glob)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   141
  |
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
   142
  o  1 hello date: * -1000 files: letter .txt (glob)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   143
  |
17974
337d728e644f convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents: 17347
diff changeset
   144
  o  0 init projB date: * -1000 files: (glob)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   145
  
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   146
  $ hg tags -q
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   147
  tip
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   148
  v0.2
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   149
  v0.1
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   150
  $ cd ..
6401
635c57cf0de8 test-convert-svn-source: remove redundant tests
Patrick Mezard <pmezard@gmail.com>
parents: 5954
diff changeset
   151
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   152
Test filemap
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   153
  $ echo 'include letter2.txt' > filemap
17033
0413f68da85c tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents: 16525
diff changeset
   154
  $ hg convert --filemap filemap "$SVNREPOURL/proj%20B/mytrunk" fmap
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   155
  initializing destination fmap repository
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   156
  scanning source...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   157
  sorting...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   158
  converting...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   159
  5 init projB
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   160
  4 hello
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   161
  3 world
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   162
  2 nice day
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   163
  1 second letter
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   164
  0 work in progress
13494
3178aca36b0f convert.svn: branch name which equals trunk means `default' branch (issue2653)
Pavel Boldin <boldin.pavel@gmail.com>
parents: 12377
diff changeset
   165
  $ hg -R fmap branch -q
3178aca36b0f convert.svn: branch name which equals trunk means `default' branch (issue2653)
Pavel Boldin <boldin.pavel@gmail.com>
parents: 12377
diff changeset
   166
  default
20117
aa9385f983fa tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents: 19122
diff changeset
   167
  $ hg log -G -R fmap --template '{rev} {desc|firstline} files: {files}\n'
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   168
  o  1 work in progress files: letter2.txt
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   169
  |
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   170
  o  0 second letter files: letter2.txt
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   171
  
22300
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   172
Convert with --full adds and removes files that didn't change
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   173
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   174
  $ cd B
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   175
  $ echo >> "letter .txt"
28469
b65481675466 tests: stabilize svn output
timeless <timeless@mozdev.org>
parents: 25472
diff changeset
   176
  $ svn ci -m 'nothing' | filter_svn_output
22300
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   177
  Sending        letter .txt
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   178
  Transmitting file data .
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   179
  Committed revision 9.
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   180
  $ cd ..
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   181
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   182
  $ echo 'rename letter2.txt letter3.txt' > filemap
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   183
  $ hg convert --filemap filemap --full "$SVNREPOURL/proj%20B/mytrunk" fmap
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   184
  scanning source...
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   185
  sorting...
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   186
  converting...
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   187
  0 nothing
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   188
  $ hg -R fmap st --change tip
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   189
  A letter .txt
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   190
  A letter3.txt
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   191
  R letter2.txt
35ab037de989 convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents: 22046
diff changeset
   192
19122
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
   193
test invalid splicemap1
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
   194
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
   195
  $ cat > splicemap <<EOF
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
   196
  > $INVALIDREVISIONID $VALIDREVISIONID
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
   197
  > EOF
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
   198
  $ hg convert --splicemap splicemap "$SVNREPOURL/proj%20B/mytrunk" smap
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
   199
  initializing destination smap repository
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
   200
  abort: splicemap entry svn:x2147622-4a9f-4db4-a8d3-13562ff547b2/proj%20B/mytrunk@1 is not a valid revision identifier
83973dc1bfe9 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com>
parents: 17974
diff changeset
   201
  [255]
6401
635c57cf0de8 test-convert-svn-source: remove redundant tests
Patrick Mezard <pmezard@gmail.com>
parents: 5954
diff changeset
   202
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   203
Test stop revision
17033
0413f68da85c tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents: 16525
diff changeset
   204
  $ hg convert --rev 1 "$SVNREPOURL/proj%20B/mytrunk" stoprev
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   205
  initializing destination stoprev repository
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   206
  scanning source...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   207
  sorting...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   208
  converting...
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   209
  0 init projB
13494
3178aca36b0f convert.svn: branch name which equals trunk means `default' branch (issue2653)
Pavel Boldin <boldin.pavel@gmail.com>
parents: 12377
diff changeset
   210
  $ hg -R stoprev branch -q
3178aca36b0f convert.svn: branch name which equals trunk means `default' branch (issue2653)
Pavel Boldin <boldin.pavel@gmail.com>
parents: 12377
diff changeset
   211
  default
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   212
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   213
Check convert_revision extra-records.
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   214
This is also the only place testing more than one extra field in a revision.
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   215
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   216
  $ cd stoprev
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   217
  $ hg tip --debug | grep extra
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   218
  extra:       branch=default
13494
3178aca36b0f convert.svn: branch name which equals trunk means `default' branch (issue2653)
Pavel Boldin <boldin.pavel@gmail.com>
parents: 12377
diff changeset
   219
  extra:       convert_revision=svn:........-....-....-....-............/proj B/mytrunk@1 (re)
12370
f98010f57a5e tests: unify test-convert-svn-*
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 10775
diff changeset
   220
  $ cd ..
16466
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   221
20420
62153c5d1ce2 convert: secret config option for disabling debugsvnlog
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   222
Test converting empty heads (issue3347).
62153c5d1ce2 convert: secret config option for disabling debugsvnlog
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   223
Also tests getting logs directly without debugsvnlog.
16466
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   224
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   225
  $ svnadmin create svn-empty
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   226
  $ svnadmin load -q svn-empty < "$TESTDIR/svn/empty.svndump"
20420
62153c5d1ce2 convert: secret config option for disabling debugsvnlog
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   227
  $ hg --config convert.svn.trunk= --config convert.svn.debugsvnlog=0 convert svn-empty
16466
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   228
  assuming destination svn-empty-hg
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   229
  initializing destination svn-empty-hg repository
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   230
  scanning source...
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   231
  sorting...
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   232
  converting...
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   233
  1 init projA
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   234
  0 adddir
17033
0413f68da85c tests: cleanup of svn url handling
Mads Kiilerich <mads@kiilerich.com>
parents: 16525
diff changeset
   235
  $ hg --config convert.svn.trunk= convert "$SVNREPOURL/../svn-empty/trunk"
16466
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   236
  assuming destination trunk-hg
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   237
  initializing destination trunk-hg repository
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   238
  scanning source...
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   239
  sorting...
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   240
  converting...
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   241
  1 init projA
c53a49c345e1 convert/svn: do not try converting empty head revisions (issue3347)
Patrick Mezard <patrick@mezard.eu>
parents: 14152
diff changeset
   242
  0 adddir
23583
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   243
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   244
Test that a too-new repository format is properly rejected:
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   245
  $ mv svn-empty/format format
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   246
  $ echo 999 > svn-empty/format
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   247
It's important that this command explicitly specify svn, otherwise it
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   248
can have surprising side effects (like falling back to a perforce
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   249
depot that can be seen from the test environment and slurping from that.)
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   250
  $ hg convert --source-type svn svn-empty this-will-fail
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   251
  initializing destination this-will-fail repository
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   252
  file:/*/$TESTTMP/svn-empty does not look like a Subversion repository to libsvn version 1.*.* (glob)
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   253
  abort: svn-empty: missing or unsupported repository
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   254
  [255]
a8edcb9c1199 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com>
parents: 22947
diff changeset
   255
  $ mv format svn-empty/format