tests/test-import-context.t
branchstable
changeset 12825 61f48581d8ef
child 16913 f2719b387380
equal deleted inserted replaced
12824:93d6559a9cbc 12825:61f48581d8ef
       
     1 Test applying context diffs
       
     2 
       
     3   $ cat > writepatterns.py <<EOF
       
     4   > import sys
       
     5   > 
       
     6   > path = sys.argv[1]
       
     7   > lasteol = sys.argv[2] == '1'
       
     8   > patterns = sys.argv[3:]
       
     9   > 
       
    10   > fp = file(path, 'wb')
       
    11   > for i, pattern in enumerate(patterns):
       
    12   >     count = int(pattern[0:-1])
       
    13   >     char = pattern[-1] + '\n'
       
    14   >     if not lasteol and i == len(patterns) - 1:
       
    15   >         fp.write((char*count)[:-1])
       
    16   >     else:
       
    17   >         fp.write(char*count)
       
    18   > fp.close()
       
    19   > EOF
       
    20   $ cat > cat.py <<EOF
       
    21   > import sys
       
    22   > sys.stdout.write(repr(file(sys.argv[1], 'rb').read()) + '\n')
       
    23   > EOF
       
    24 
       
    25 Initialize the test repository
       
    26 
       
    27   $ hg init repo
       
    28   $ cd repo
       
    29   $ python ../writepatterns.py a 0 5A 1B 5C 1D
       
    30   $ python ../writepatterns.py b 1 1A 1B
       
    31   $ python ../writepatterns.py c 1 5A
       
    32   $ python ../writepatterns.py d 1 5A 1B
       
    33   $ hg add
       
    34   adding a
       
    35   adding b
       
    36   adding c
       
    37   adding d
       
    38   $ hg ci -m addfiles
       
    39 
       
    40 Add file, missing a last end of line
       
    41 
       
    42   $ hg import --no-commit - <<EOF
       
    43   > *** /dev/null	2010-10-16 18:05:49.000000000 +0200
       
    44   > --- b/newnoeol	2010-10-16 18:23:26.000000000 +0200
       
    45   > ***************
       
    46   > *** 0 ****
       
    47   > --- 1,2 ----
       
    48   > + a
       
    49   > + b
       
    50   > \ No newline at end of file
       
    51   > *** a/a	Sat Oct 16 16:35:51 2010
       
    52   > --- b/a	Sat Oct 16 16:35:51 2010
       
    53   > ***************
       
    54   > *** 3,12 ****
       
    55   >   A
       
    56   >   A
       
    57   >   A
       
    58   > ! B
       
    59   >   C
       
    60   >   C
       
    61   >   C
       
    62   >   C
       
    63   >   C
       
    64   > ! D
       
    65   > \ No newline at end of file
       
    66   > --- 3,13 ----
       
    67   >   A
       
    68   >   A
       
    69   >   A
       
    70   > ! E
       
    71   >   C
       
    72   >   C
       
    73   >   C
       
    74   >   C
       
    75   >   C
       
    76   > ! F
       
    77   > ! F
       
    78   > 
       
    79   > *** a/b	2010-10-16 18:40:38.000000000 +0200
       
    80   > --- /dev/null	2010-10-16 18:05:49.000000000 +0200
       
    81   > ***************
       
    82   > *** 1,2 ****
       
    83   > - A
       
    84   > - B
       
    85   > --- 0 ----
       
    86   > *** a/c	Sat Oct 16 21:34:26 2010
       
    87   > --- b/c	Sat Oct 16 21:34:27 2010
       
    88   > ***************
       
    89   > *** 3,5 ****
       
    90   > --- 3,7 ----
       
    91   >   A
       
    92   >   A
       
    93   >   A
       
    94   > + B
       
    95   > + B
       
    96   > *** a/d	Sat Oct 16 21:47:20 2010
       
    97   > --- b/d	Sat Oct 16 21:47:22 2010
       
    98   > ***************
       
    99   > *** 2,6 ****
       
   100   >   A
       
   101   >   A
       
   102   >   A
       
   103   > - A
       
   104   > - B
       
   105   > --- 2,4 ----
       
   106   > EOF
       
   107   applying patch from stdin
       
   108   $ hg st
       
   109   M a
       
   110   M c
       
   111   M d
       
   112   A newnoeol
       
   113   R b
       
   114 
       
   115 What's in a
       
   116 
       
   117   $ python ../cat.py a
       
   118   'A\nA\nA\nA\nA\nE\nC\nC\nC\nC\nC\nF\nF\n'
       
   119   $ python ../cat.py newnoeol
       
   120   'a\nb'
       
   121   $ python ../cat.py c
       
   122   'A\nA\nA\nA\nA\nB\nB\n'
       
   123   $ python ../cat.py d
       
   124   'A\nA\nA\nA\n'
       
   125