tests/test-import-eol.t
author Martin Geisler <mg@lazybytes.net>
Sun, 29 Aug 2010 22:55:37 +0200
changeset 12070 fddacca3202e
parent 11808 3f6cf4cb3dca
child 12316 4134686b83e1
permissions -rw-r--r--
Merge with stable
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
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    40
  $ hg revert -a
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    41
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
force LF
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    44
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    45
  $ 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
    46
  applying eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    47
  $ python -c 'print repr(file("a","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    48
  'a\nyyyy\ncc\n\nd\ne'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    49
  $ hg st
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    50
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    51
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    52
force CRLF
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    53
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    54
  $ hg up -C 0
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    55
  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
    56
  $ 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
    57
  applying eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    58
  $ python -c 'print repr(file("a","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    59
  '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
    60
  $ hg st
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    61
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    62
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    63
auto EOL on LF file
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    64
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    65
  $ hg up -C 0
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    66
  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
    67
  $ 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
    68
  applying eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    69
  $ python -c 'print repr(file("a","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    70
  'a\nyyyy\ncc\n\nd\ne'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    71
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    72
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    73
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    74
auto EOL on CRLF file
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    75
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    76
  $ 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
    77
  $ hg commit -m 'switch EOLs in a'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    78
  $ 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
    79
  applying eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    80
  $ python -c 'print repr(file("a","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    81
  '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
    82
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    83
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
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
    86
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    87
  $ python -c 'file("noeol", "wb").write("noeol")'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    88
  $ hg add noeol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    89
  $ hg commit -m 'add noeol'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    90
  $ 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
    91
  $ 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
    92
  $ hg add neweol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    93
  $ hg diff --git > noeol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    94
  $ hg revert --no-backup noeol neweol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    95
  $ rm neweol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    96
  $ 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
    97
  applying noeol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    98
  $ python -c 'print repr(file("noeol","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    99
  'noeol\r\nnoeol\n'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   100
  $ python -c 'print repr(file("neweol","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   101
  'neweol\nneweol\r\n'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   102
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   103
10127
d8214e944b84 patch: fix eolmode=auto with new files
Patrick Mezard <pmezard@gmail.com>
parents: 10102
diff changeset
   104
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   105
Test --eol and binary patches
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   106
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   107
  $ 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
   108
  $ hg ci -Am addb
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   109
  adding b
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   110
  $ 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
   111
  $ hg diff --git > bin.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   112
  $ hg revert --no-backup b
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   113
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   114
binary patch with --eol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   115
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   116
  $ 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
   117
  applying bin.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   118
  $ python -c 'print repr(file("b","rb").read())'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   119
  'a\x00\nc\r\nd'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   120
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   121
  $ cd ..