tests/test-import-eol.t
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 12 Sep 2018 11:02:16 -0700
changeset 39703 bfeab472e3c0
parent 37575 230eb9594150
child 39723 5abc47d4ca6b
permissions -rw-r--r--
localrepo: create new function for instantiating a local repo object Today, there is a single local repository class - localrepository. Its __init__ is responsible for loading the .hg/requires file and taking different actions depending on what is present. In addition, extensions may define a "reposetup" function that monkeypatches constructed repository instances, often by implementing a derived type and changing the __class__ of the repo instance. Work around alternate storage backends and partial clone has made it clear to me that shoehorning all this logic into __init__ and operating on an existing instance is too convoluted. For example, localrepository assumes revlog storage and swapping in non-revlog storage requires overriding e.g. file() to return something that isn't a revlog. I've authored various patches that either: a) teach various methods (like file()) about different states and taking the appropriate code path at run-time b) create methods/attributes/callables used for instantiating things and populating these in __init__ "a" incurs run-time performance penalties and makes code more complicated since various functions have a bunch of "if storage is X" branches. "b" makes localrepository quickly explode in complexity. My plan for tackling this problem is to make the local repository type more dynamic. Instead of a static localrepository class/type that supports all of the local repository configurations (revlogs vs other, revlogs with ellipsis, revlog v1 versus revlog v2, etc), we'll dynamically construct a type providing the implementations that are needed for the repository on disk, derived from the .hg/requires file and configuration options. The constructed repository type will be specialized and methods won't need to be taught about different implementations nor overloaded. We may also leverage this functionality for building types that don't implement all attributes. For example, the "intents" feature allows commands to declare that they are read only. By dynamically constructing a repository type, we could return a repository instance with no attributes related to mutating the repository. This could include things like a "changelog" property implementation that doesn't check whether it needs to invalidate the hidden revisions set on every access. This commit establishes a function for building a local repository instance. Future commits will start moving functionality from localrepository.__init__ to this function. Then we'll start dynamically changing the returned type depending on options that are present. This change may seem radical. But it should be fully compatible with the reposetup() model - at least for now. Differential Revision: https://phab.mercurial-scm.org/D4563
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
37575
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
     2
  > import sys
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
     3
  > f = open(sys.argv[2], 'wb')
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
     4
  > w = f.write
36064
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
     5
  > w(b'test message\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
     6
  > w(b'diff --git a/a b/a\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
     7
  > w(b'--- a/a\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
     8
  > w(b'+++ b/a\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
     9
  > w(b'@@ -1,5 +1,5 @@\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    10
  > w(b' a\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    11
  > w(b'-bbb\r\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    12
  > w(b'+yyyy\r\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    13
  > w(b' cc\r\n')
37575
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    14
  > w({'empty:lf': b' \n',
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    15
  >    'empty:crlf': b' \r\n',
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    16
  >    'empty:stripped-lf': b'\n',
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    17
  >    'empty:stripped-crlf': b'\r\n'}[sys.argv[1]])
36064
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    18
  > w(b' d\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    19
  > w(b'-e\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    20
  > w(b'\ No newline at end of file\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    21
  > w(b'+z\r\n')
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    22
  > w(b'\ No newline at end of file\r\n')
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    23
  > EOF
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
  $ hg init repo
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    26
  $ cd repo
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    27
  $ echo '\.diff' > .hgignore
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    28
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    29
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    30
Test different --eol values
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    31
36064
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
    32
  $ $PYTHON -c 'open("a", "wb").write(b"a\nbbb\ncc\n\nd\ne")'
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    33
  $ hg ci -Am adda
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    34
  adding .hgignore
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    35
  adding a
37575
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    36
  $ $PYTHON ../makepatch.py empty:lf eol.diff
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    37
  $ $PYTHON ../makepatch.py empty:crlf eol-empty-crlf.diff
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    38
  $ $PYTHON ../makepatch.py empty:stripped-lf eol-empty-stripped-lf.diff
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    39
  $ $PYTHON ../makepatch.py empty:stripped-crlf eol-empty-stripped-crlf.diff
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    40
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    41
invalid eol
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
  $ hg --config patch.eol='LFCR' import eol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    44
  applying eol.diff
12070
fddacca3202e Merge with stable
Martin Geisler <mg@lazybytes.net>
parents: 11808
diff changeset
    45
  abort: unsupported line endings type: LFCR
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12070
diff changeset
    46
  [255]
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    47
  $ hg revert -a
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    48
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    49
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    50
force LF
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    51
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    52
  $ 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
    53
  applying eol.diff
37575
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    54
  $ hg id
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    55
  9e4ef7b3d4af tip
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    56
  $ cat a
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    57
  a
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    58
  yyyy
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    59
  cc
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    60
  
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    61
  d
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    62
  e (no-eol)
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    63
  $ hg st
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    64
37575
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    65
 (test empty-line variants: all of them should generate the same revision)
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    66
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    67
  $ hg up -qC 0
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    68
  $ hg --config patch.eol='LF' import eol-empty-crlf.diff
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    69
  applying eol-empty-crlf.diff
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    70
  $ hg id
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    71
  9e4ef7b3d4af tip
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    72
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    73
  $ hg up -qC 0
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    74
  $ hg --config patch.eol='LF' import eol-empty-stripped-lf.diff
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    75
  applying eol-empty-stripped-lf.diff
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    76
  $ hg id
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    77
  9e4ef7b3d4af tip
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    78
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    79
  $ hg up -qC 0
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    80
  $ hg --config patch.eol='LF' import eol-empty-stripped-crlf.diff
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    81
  applying eol-empty-stripped-crlf.diff
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    82
  $ hg id
230eb9594150 diffhelpers: be more tolerant for stripped empty lines of CRLF ending
Yuya Nishihara <yuya@tcha.org>
parents: 36064
diff changeset
    83
  9e4ef7b3d4af tip
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    84
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    85
force CRLF
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
  $ hg up -C 0
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    88
  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
    89
  $ 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
    90
  applying eol.diff
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    91
  $ cat a
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    92
  a\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    93
  yyyy\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    94
  cc\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    95
  \r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    96
  d\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
    97
  e (no-eol)
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
    98
  $ hg st
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
    99
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   100
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   101
auto EOL on LF file
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   102
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   103
  $ hg up -C 0
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   104
  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
   105
  $ 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
   106
  applying eol.diff
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   107
  $ cat a
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   108
  a
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   109
  yyyy
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   110
  cc
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   111
  
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   112
  d
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   113
  e (no-eol)
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   114
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   115
8810
ac92775b3b80 Add patch.eol to ignore EOLs when patching (issue1019)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   116
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   117
auto EOL on CRLF file
10102
1720d70cd6d4 patch: implement patch.eol=auto mode
Martin Geisler <mg@lazybytes.net>
parents: 8817
diff changeset
   118
36064
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
   119
  $ $PYTHON -c 'open("a", "wb").write(b"a\r\nbbb\r\ncc\r\n\r\nd\r\ne")'
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   120
  $ hg commit -m 'switch EOLs in a'
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   121
  $ 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
   122
  applying eol.diff
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   123
  $ cat a
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   124
  a\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   125
  yyyy\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   126
  cc\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   127
  \r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   128
  d\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   129
  e (no-eol)
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   130
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   131
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   132
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   133
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
   134
36064
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
   135
  $ $PYTHON -c 'open("noeol", "wb").write(b"noeol")'
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   136
  $ hg add noeol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   137
  $ hg commit -m 'add noeol'
36064
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
   138
  $ $PYTHON -c 'open("noeol", "wb").write(b"noeol\r\nnoeol\n")'
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
   139
  $ $PYTHON -c 'open("neweol", "wb").write(b"neweol\nneweol\r\n")'
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   140
  $ hg add neweol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   141
  $ hg diff --git > noeol.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   142
  $ hg revert --no-backup noeol neweol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   143
  $ rm neweol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   144
  $ 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
   145
  applying noeol.diff
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   146
  $ cat noeol
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   147
  noeol\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   148
  noeol
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   149
  $ cat neweol
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   150
  neweol
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   151
  neweol\r (esc)
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   152
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   153
10127
d8214e944b84 patch: fix eolmode=auto with new files
Patrick Mezard <pmezard@gmail.com>
parents: 10102
diff changeset
   154
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   155
Test --eol and binary patches
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   156
36064
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
   157
  $ $PYTHON -c 'open("b", "wb").write(b"a\x00\nb\r\nd")'
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   158
  $ hg ci -Am addb
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   159
  adding b
36064
a4d7e51709e5 py3: replace file() with open() in test-import-eol.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32958
diff changeset
   160
  $ $PYTHON -c 'open("b", "wb").write(b"a\x00\nc\r\nd")'
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   161
  $ hg diff --git > bin.diff
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   162
  $ hg revert --no-backup b
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   163
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   164
binary patch with --eol
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   165
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   166
  $ 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
   167
  applying bin.diff
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   168
  $ cat b
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   169
  a\x00 (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   170
  c\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
   171
  d (no-eol)
11808
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   172
  $ hg st
3f6cf4cb3dca tests: unify test-qimport-eol
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10130
diff changeset
   173
  $ cd ..