Mercurial > hg
annotate tests/test-patch.t @ 34465:80d4681150b9
urllibcompat: new library to help abstract out some python3 urllib2 stuff
Doing a new file instead of pycompat because I'm starting to feel like
pycompat is getting a little enormous in terms of scope.
Differential Revision: https://phab.mercurial-scm.org/D890
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 01 Oct 2017 10:45:03 -0400 |
parents | b1f75d8e887a |
children | eb586ed5d8ce |
rev | line source |
---|---|
11784
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
1 $ cat > patchtool.py <<EOF |
33972
b1f75d8e887a
tests: update test-patch to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
32940
diff
changeset
|
2 > from __future__ import absolute_import, print_function |
11784
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
3 > import sys |
33972
b1f75d8e887a
tests: update test-patch to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
32940
diff
changeset
|
4 > print('Using custom patch') |
11784
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
5 > if '--binary' in sys.argv: |
33972
b1f75d8e887a
tests: update test-patch to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
32940
diff
changeset
|
6 > print('--binary found !') |
11784
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
7 > EOF |
4645
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
8 |
11784
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
9 $ echo "[ui]" >> $HGRCPATH |
32940
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
15194
diff
changeset
|
10 $ echo "patch=$PYTHON ../patchtool.py" >> $HGRCPATH |
4645
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
11 |
11784
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
12 $ hg init a |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
13 $ cd a |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
14 $ echo a > a |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
15 $ hg commit -Ama -d '1 0' |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
16 adding a |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
17 $ echo b >> a |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
18 $ hg commit -Amb -d '2 0' |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
19 $ cd .. |
4645
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
20 |
11815 | 21 This test checks that: |
22 - custom patch commands with arguments actually work | |
11784
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
23 - 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
|
24 --binary when custom patch commands are used. For instance |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
25 --binary is added by default under win32. |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
26 |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
27 check custom patch options are honored |
4645
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
28 |
11784
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
29 $ hg --cwd a export -o ../a.diff tip |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
30 $ hg clone -r 0 a b |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
31 adding changesets |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
32 adding manifests |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
33 adding file changes |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
34 added 1 changesets with 1 changes to 1 files |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
35 updating to branch default |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
36 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
|
37 |
11784
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
38 $ hg --cwd b import -v ../a.diff |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
39 applying ../a.diff |
8a1943685dfb
tests: unify test-patch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
4645
diff
changeset
|
40 Using custom patch |
15194
0705f2ac79d6
import: simplify status reporting logic (and make it more I18N-friendly)
Greg Ward <greg@gerg.ca>
parents:
14832
diff
changeset
|
41 applied to working directory |
12645
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
42 |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
43 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
|
44 |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
45 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
|
46 |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
47 $ rm $HGRCPATH |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
48 $ hg init c |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
49 $ cd c |
14832
d60e4f227d75
patch: fix parsing patch files containing CRs not followed by LFs
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
12847
diff
changeset
|
50 $ printf "a\rc" > a |
12645
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
51 $ hg ci -A -m 0 a -d '0 0' |
14832
d60e4f227d75
patch: fix parsing patch files containing CRs not followed by LFs
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
12847
diff
changeset
|
52 $ printf "a\rb\rc" > a |
12645
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
53 $ 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
|
54 > 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
|
55 > # 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
|
56 > 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
|
57 > # HG changeset patch |
80a3d1121c10
import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
12645
diff
changeset
|
58 > # 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
|
59 > eof |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
60 $ 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
|
61 $ 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
|
62 $ cd .. |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
63 |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
64 Clone and apply patch: |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
65 |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
66 $ 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
|
67 adding changesets |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
68 adding manifests |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
69 adding file changes |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
70 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
|
71 updating to branch default |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
72 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
|
73 $ cd d |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
74 $ hg import ../c/p |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
75 applying ../c/p |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
76 $ hg log -v -r 1 |
14832
d60e4f227d75
patch: fix parsing patch files containing CRs not followed by LFs
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
12847
diff
changeset
|
77 changeset: 1:cd0bde79c428 |
12645
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
78 tag: tip |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
79 user: test |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
80 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
|
81 files: a |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
82 description: |
12728
80a3d1121c10
import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
12645
diff
changeset
|
83 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
|
84 # 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
|
85 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
|
86 # HG changeset patch |
80a3d1121c10
import: only the first hg patch marker should be processed (issue2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
12645
diff
changeset
|
87 # 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
|
88 |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
89 |
d7452292f9d3
import: don't strip '#' lines from patch descriptions (issue 2417)
Mads Kiilerich <mads@kiilerich.com>
parents:
11815
diff
changeset
|
90 $ cd .. |