Mercurial > hg
annotate tests/test-patch.t @ 25591:f1d46075b13a
verify: check the subrepository references in .hgsubstate
While hopefully atypical, there are reasons that a subrepository revision can be
lost that aren't covered by corruption of the .hgsubstate revlog. Such things
can happen when a subrepo is amended, stripped or simply isn't pulled from
upstream because the parent repo revision wasn't updated yet. There's no way to
know if it is an error, but this will find potential problems sooner than when
some random revision is updated.
Until recently, convert made no attempt at rewriting the .hgsubstate file. The
impetuous for this is to verify the conversion of some repositories, and this is
orders of magnitude faster than a bash script from 0..tip that does an
'hg update -C $rev'. But it is equally useful to determine if everything has
been pulled down before taking a thumb drive on the go.
It feels somewhat wrong to leave this out of verifymod (mostly because the file
is already read in there, and the final summary is printed before the subrepos
are checked). But verifymod looks very low level, so importing subrepo stuff
there seems more wrong.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 16 Jun 2015 16:15:15 -0400 |
parents | 0705f2ac79d6 |
children | 75be14993fda |
rev | line source |
---|---|
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 | 20 This test checks that: |
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 |
15194
0705f2ac79d6
import: simplify status reporting logic (and make it more I18N-friendly)
Greg Ward <greg@gerg.ca>
parents:
14832
diff
changeset
|
40 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
|
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 |
14832
d60e4f227d75
patch: fix parsing patch files containing CRs not followed by LFs
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
12847
diff
changeset
|
49 $ 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
|
50 $ 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
|
51 $ 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
|
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 |
14832
d60e4f227d75
patch: fix parsing patch files containing CRs not followed by LFs
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
12847
diff
changeset
|
76 changeset: 1:cd0bde79c428 |
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 .. |