tests/test-patch.t
author Adrian Buehlmann <adrian@cadifra.com>
Wed, 26 Jan 2011 19:14:30 +0100
branchstable
changeset 13305 035684c6b69a
parent 12847 b00eda50ad2b
child 14832 d60e4f227d75
permissions -rw-r--r--
opener: force copy on 'a'ppend if nlinks() returns 0 (issue1922) If pywin32 is not installed, 'os.lstat(pathname).st_nlink' is used for nlinks(), which is always zero for all files on Windows. To make sure we break up hardlinks if pywin32 is missing, we force nlink = 2 if nlinks() returns < 1. (this completely fixes issue1922)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11784
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
     1
  $ cat > patchtool.py <<EOF
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
     2
  > import sys
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
     3
  > print 'Using custom patch'
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
     4
  > if '--binary' in sys.argv:
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
     5
  >     print '--binary found !'
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
     6
  > EOF
4645
0de7e6e27fe4 Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     7
11784
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
     8
  $ echo "[ui]" >> $HGRCPATH
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
     9
  $ echo "patch=python ../patchtool.py" >> $HGRCPATH
4645
0de7e6e27fe4 Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    10
11784
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    11
  $ hg init a
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    12
  $ cd a
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    13
  $ echo a > a
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    14
  $ hg commit -Ama -d '1 0'
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    15
  adding a
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    16
  $ echo b >> a
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    17
  $ hg commit -Amb -d '2 0'
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    18
  $ cd ..
4645
0de7e6e27fe4 Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    19
11815
20a88cf7ee92 test-patch.t: typos
Christian Ebert <blacktrash@gmx.net>
parents: 11784
diff changeset
    20
This test checks that:
20a88cf7ee92 test-patch.t: typos
Christian Ebert <blacktrash@gmx.net>
parents: 11784
diff changeset
    21
 - custom patch commands with arguments actually work
11784
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    22
 - patch code does not try to add weird arguments like
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    23
 --binary when custom patch commands are used. For instance
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    24
 --binary is added by default under win32.
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    25
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    26
check custom patch options are honored
4645
0de7e6e27fe4 Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    27
11784
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    28
  $ hg --cwd a export -o ../a.diff tip
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    29
  $ hg clone -r 0 a b
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    30
  adding changesets
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    31
  adding manifests
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    32
  adding file changes
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    33
  added 1 changesets with 1 changes to 1 files
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    34
  updating to branch default
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    35
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4645
0de7e6e27fe4 Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    36
11784
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    37
  $ hg --cwd b import -v ../a.diff
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    38
  applying ../a.diff
8a1943685dfb tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 4645
diff changeset
    39
  Using custom patch
4645
0de7e6e27fe4 Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    40
12645
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    41
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    42
Issue2417: hg import with # comments in description
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    43
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    44
Prepare source repo and patch:
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    45
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    46
  $ rm $HGRCPATH
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    47
  $ hg init c
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    48
  $ cd c
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    49
  $ echo 0 > a
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    50
  $ hg ci -A -m 0 a -d '0 0'
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    51
  $ echo 1 >> a
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    52
  $ cat << eof > log
12728
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    53
  > first line which can't start with '# '
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    54
  > # second line is a comment but that shouldn't be a problem.
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    55
  > A patch marker like this was more problematic even after d7452292f9d3:
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    56
  > # HG changeset patch
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    57
  > # User lines looks like this - but it _is_ just a comment
12645
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    58
  > eof
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    59
  $ hg ci -l log -d '0 0'
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    60
  $ hg export -o p 1
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    61
  $ cd ..
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    62
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    63
Clone and apply patch:
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    64
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    65
  $ hg clone -r 0 c d
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    66
  adding changesets
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    67
  adding manifests
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    68
  adding file changes
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    69
  added 1 changesets with 1 changes to 1 files
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    70
  updating to branch default
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    71
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    72
  $ cd d
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    73
  $ hg import ../c/p
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    74
  applying ../c/p
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    75
  $ hg log -v -r 1
12728
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    76
  changeset:   1:e8cc66fbbaa6
12645
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    77
  tag:         tip
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    78
  user:        test
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    79
  date:        Thu Jan 01 00:00:00 1970 +0000
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    80
  files:       a
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    81
  description:
12728
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    82
  first line which can't start with '# '
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    83
  # second line is a comment but that shouldn't be a problem.
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    84
  A patch marker like this was more problematic even after d7452292f9d3:
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    85
  # HG changeset patch
80a3d1121c10 import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 12645
diff changeset
    86
  # User lines looks like this - but it _is_ just a comment
12645
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    87
  
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    88
  
d7452292f9d3 import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents: 11815
diff changeset
    89
  $ cd ..