tests/test-import-eol.t
author Matt Mackall <mpm@selenic.com>
Sun, 26 Sep 2010 13:41:32 -0500
changeset 12419 f6a91fcd189a
parent 12316 4134686b83e1
child 12943 7439ea4146f8
permissions -rw-r--r--
tests: unify test-eol
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     1
  $ cat > makepatch.py <<EOF
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     2
  > f = file('eol.diff', 'wb')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     3
  > w = f.write
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     4
  > w('test message\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     5
  > w('diff --git a/a b/a\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     6
  > w('--- a/a\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     7
  > w('+++ b/a\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     8
  > w('@@ -1,5 +1,5 @@\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     9
  > w(' a\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    10
  > w('-bbb\r\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    11
  > w('+yyyy\r\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    12
  > w(' cc\r\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    13
  > w(' \n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    14
  > w(' d\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    15
  > w('-e\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    16
  > w('\ No newline at end of file\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    17
  > w('+z\r\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    18
  > w('\ No newline at end of file\r\n')
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    19
  > EOF
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    20
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    21
  $ hg init repo
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    22
  $ cd repo
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    23
  $ echo '\.diff' > .hgignore
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    24
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    25
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    26
Test different --eol values
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    27
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    28
  $ python -c 'file("a", "wb").write("a\nbbb\ncc\n\nd\ne")'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    29
  $ hg ci -Am adda
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    30
  adding .hgignore
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    31
  adding a
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    32
  $ python ../makepatch.py
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    33
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    34
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    35
invalid eol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    36
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    37
  $ hg --config patch.eol='LFCR' import eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    38
  applying eol.diff
12070
fddacca3202e Merge with stable
Martin Geisler <mg@lazybytes.net>
parents: 11808
diff changeset
    39
  abort: unsupported line endings type: LFCR
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12070
diff changeset
    40
  [255]
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    41
  $ hg revert -a
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    42
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    43
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    44
force LF
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    45
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    46
  $ hg --traceback --config patch.eol='LF' import eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    47
  applying eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    48
  $ python -c 'print repr(file("a","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    49
  'a\nyyyy\ncc\n\nd\ne'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    50
  $ hg st
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    51
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    52
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    53
force CRLF
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    54
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    55
  $ hg up -C 0
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    56
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    57
  $ hg --traceback --config patch.eol='CRLF' import eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    58
  applying eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    59
  $ python -c 'print repr(file("a","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    60
  'a\r\nyyyy\r\ncc\r\n\r\nd\r\ne'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    61
  $ hg st
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    62
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    63
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    64
auto EOL on LF file
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    65
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    66
  $ hg up -C 0
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    67
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    68
  $ hg --traceback --config patch.eol='auto' import eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    69
  applying eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    70
  $ python -c 'print repr(file("a","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    71
  'a\nyyyy\ncc\n\nd\ne'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    72
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    73
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    74
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    75
auto EOL on CRLF file
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    76
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    77
  $ python -c 'file("a", "wb").write("a\r\nbbb\r\ncc\r\n\r\nd\r\ne")'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    78
  $ hg commit -m 'switch EOLs in a'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    79
  $ hg --traceback --config patch.eol='auto' import eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    80
  applying eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    81
  $ python -c 'print repr(file("a","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    82
  'a\r\nyyyy\r\ncc\r\n\r\nd\r\ne'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    83
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    84
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    85
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    86
auto EOL on new file or source without any EOL
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    87
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    88
  $ python -c 'file("noeol", "wb").write("noeol")'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    89
  $ hg add noeol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    90
  $ hg commit -m 'add noeol'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    91
  $ python -c 'file("noeol", "wb").write("noeol\r\nnoeol\n")'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    92
  $ python -c 'file("neweol", "wb").write("neweol\nneweol\r\n")'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    93
  $ hg add neweol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    94
  $ hg diff --git > noeol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    95
  $ hg revert --no-backup noeol neweol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    96
  $ rm neweol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    97
  $ hg --traceback --config patch.eol='auto' import -m noeol noeol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    98
  applying noeol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    99
  $ python -c 'print repr(file("noeol","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   100
  'noeol\r\nnoeol\n'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   101
  $ python -c 'print repr(file("neweol","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   102
  'neweol\nneweol\r\n'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   103
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   104
10127
d8214e944b84 patch: fix eolmode=auto with new files
Patrick Mezard <pmezard@gmail.com>
parents: 10102
diff changeset
   105
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   106
Test --eol and binary patches
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   107
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   108
  $ python -c 'file("b", "wb").write("a\x00\nb\r\nd")'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   109
  $ hg ci -Am addb
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   110
  adding b
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   111
  $ python -c 'file("b", "wb").write("a\x00\nc\r\nd")'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   112
  $ hg diff --git > bin.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   113
  $ hg revert --no-backup b
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   114
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   115
binary patch with --eol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   116
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   117
  $ hg import --config patch.eol='CRLF' -m changeb bin.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   118
  applying bin.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   119
  $ python -c 'print repr(file("b","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   120
  'a\x00\nc\r\nd'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   121
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   122
  $ cd ..