annotate tests/test-diff-binary-file.t @ 29196:bf7b8157c483 stable

strip: invalidate phase cache after stripping changeset (issue5235) When we remove a changeset from the changelog, the phase cache must be invalidated, otherwise it could refer to changesets that are no longer in the repo. To reproduce the failure, I created an extension querying the phase cache after the strip transaction is over. To do that, I stripped two commits with a bookmark on one of them to force another transaction (we open a transaction for moving bookmarks) after the strip transaction. Without the fix in this patch, the test leads to a stacktrace showing the issue: repair.strip(ui, repo, revs, backup) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/repair.py", line 205, in strip tr.close() File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/transaction.py", line 44, in _active return func(self, *args, **kwds) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/transaction.py", line 490, in close self._postclosecallback[cat](self) File "$TESTTMP/crashstrip2.py", line 4, in test [repo.changelog.node(r) for r in repo.revs("not public()")] File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/changelog.py", line 337, in node return super(changelog, self).node(rev) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/revlog.py", line 377, in node return self.index[rev][7] IndexError: revlog index out of range The situation was encountered in inhibit (evolve's repo) where we would crash following the volatile set invalidation submitted by Augie in e6f490e328635312ee214a12bc7fd3c7d46bf9ce. Before his patch the issue was masked as we were not accessing the phasecache after stripping a revision. This bug uncovered another but in histedit (see explanation in issue5235). I changed the histedit test accordingly to avoid fixing two things at once.
author Laurent Charignon <lcharignon@fb.com>
date Thu, 12 May 2016 06:13:59 -0700
parents 186f2afe9919
children 66a9faadbc83
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12151
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
1 $ hg init a
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
2 $ cd a
16350
4f795f5fbb0b tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12151
diff changeset
3 $ cp "$TESTDIR/binfile.bin" .
12151
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
4 $ hg add binfile.bin
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
5 $ hg ci -m 'add binfile.bin'
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
6
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
7 $ echo >> binfile.bin
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
8 $ hg ci -m 'change binfile.bin'
4104
0934fef871f3 add test for diffing identical binary files
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
9
12151
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
10 $ hg revert -r 0 binfile.bin
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
11 $ hg ci -m 'revert binfile.bin'
23924
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
12 $ hg cp binfile.bin nonbinfile
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
13 $ echo text > nonbinfile
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
14 $ hg ci -m 'make non-binary copy of binary file'
4104
0934fef871f3 add test for diffing identical binary files
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
15
12151
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
16 $ hg diff --nodates -r 0 -r 1
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
17 diff -r 48b371597640 -r acea2ab458c8 binfile.bin
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
18 Binary file binfile.bin has changed
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
19
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
20 $ hg diff --nodates -r 0 -r 2
4104
0934fef871f3 add test for diffing identical binary files
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
21
12151
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
22 $ hg diff --git -r 0 -r 1
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
23 diff --git a/binfile.bin b/binfile.bin
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
24 index 37ba3d1c6f17137d9c5f5776fa040caf5fe73ff9..58dc31a9e2f40f74ff3b45903f7d620b8e5b7356
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
25 GIT binary patch
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
26 literal 594
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
27 zc$@)J0<HatP)<h;3K|Lk000e1NJLTq000mG000mO0ssI2kdbIM00009a7bBm000XU
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
28 z000XU0RWnu7ytkO2XskIMF-Uh9TW;VpMjwv0005-Nkl<ZD9@FWPs=e;7{<>W$NUkd
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
29 zX$nnYLt$-$V!?uy+1V%`z&Eh=ah|duER<4|QWhju3gb^nF*8iYobxWG-qqXl=2~5M
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
30 z*IoDB)sG^CfNuoBmqLTVU^<;@nwHP!1wrWd`{(mHo6VNXWtyh{alzqmsH*yYzpvLT
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
31 zLdY<T=ks|woh-`&01!ej#(xbV1f|pI*=%;d-%F*E*X#ZH`4I%6SS+$EJDE&ct=8po
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
32 ziN#{?_j|kD%Cd|oiqds`xm@;oJ-^?NG3Gdqrs?5u*zI;{nogxsx~^|Fn^Y?Gdc6<;
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
33 zfMJ+iF1J`LMx&A2?dEwNW8ClebzPTbIh{@$hS6*`kH@1d%Lo7fA#}N1)oN7`gm$~V
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
34 z+wDx#)OFqMcE{s!JN0-xhG8ItAjVkJwEcb`3WWlJfU2r?;Pd%dmR+q@mSri5q9_W-
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
35 zaR2~ECX?B2w+zELozC0s*6Z~|QG^f{3I#<`?)Q7U-JZ|q5W;9Q8i_=pBuSzunx=U;
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
36 z9C)5jBoYw9^?EHyQl(M}1OlQcCX>lXB*ODN003Z&P17_@)3Pi=i0wb04<W?v-u}7K
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
37 zXmmQA+wDgE!qR9o8jr`%=ab_&uh(l?R=r;Tjiqon91I2-hIu?57~@*4h7h9uORK#=
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
38 gQItJW-{SoTm)8|5##k|m00000NkvXXu0mjf3JwksH2?qr
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
39
4104
0934fef871f3 add test for diffing identical binary files
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
40
12151
cc5b71840148 tests: unify test-diff-binary-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
41 $ hg diff --git -r 0 -r 2
4104
0934fef871f3 add test for diffing identical binary files
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
42
21790
3fbef7ac26f0 diff: add nobinary config to suppress git-style binary diffs
Stephen Lee <sphen.lee@gmail.com>
parents: 16913
diff changeset
43 $ hg diff --config diff.nobinary=True --git -r 0 -r 1
3fbef7ac26f0 diff: add nobinary config to suppress git-style binary diffs
Stephen Lee <sphen.lee@gmail.com>
parents: 16913
diff changeset
44 diff --git a/binfile.bin b/binfile.bin
3fbef7ac26f0 diff: add nobinary config to suppress git-style binary diffs
Stephen Lee <sphen.lee@gmail.com>
parents: 16913
diff changeset
45 Binary file binfile.bin has changed
3fbef7ac26f0 diff: add nobinary config to suppress git-style binary diffs
Stephen Lee <sphen.lee@gmail.com>
parents: 16913
diff changeset
46
27401
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
47 $ HGPLAIN=1 hg diff --config diff.nobinary=True --git -r 0 -r 1
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
48 diff --git a/binfile.bin b/binfile.bin
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
49 index 37ba3d1c6f17137d9c5f5776fa040caf5fe73ff9..58dc31a9e2f40f74ff3b45903f7d620b8e5b7356
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
50 GIT binary patch
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
51 literal 594
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
52 zc$@)J0<HatP)<h;3K|Lk000e1NJLTq000mG000mO0ssI2kdbIM00009a7bBm000XU
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
53 z000XU0RWnu7ytkO2XskIMF-Uh9TW;VpMjwv0005-Nkl<ZD9@FWPs=e;7{<>W$NUkd
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
54 zX$nnYLt$-$V!?uy+1V%`z&Eh=ah|duER<4|QWhju3gb^nF*8iYobxWG-qqXl=2~5M
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
55 z*IoDB)sG^CfNuoBmqLTVU^<;@nwHP!1wrWd`{(mHo6VNXWtyh{alzqmsH*yYzpvLT
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
56 zLdY<T=ks|woh-`&01!ej#(xbV1f|pI*=%;d-%F*E*X#ZH`4I%6SS+$EJDE&ct=8po
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
57 ziN#{?_j|kD%Cd|oiqds`xm@;oJ-^?NG3Gdqrs?5u*zI;{nogxsx~^|Fn^Y?Gdc6<;
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
58 zfMJ+iF1J`LMx&A2?dEwNW8ClebzPTbIh{@$hS6*`kH@1d%Lo7fA#}N1)oN7`gm$~V
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
59 z+wDx#)OFqMcE{s!JN0-xhG8ItAjVkJwEcb`3WWlJfU2r?;Pd%dmR+q@mSri5q9_W-
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
60 zaR2~ECX?B2w+zELozC0s*6Z~|QG^f{3I#<`?)Q7U-JZ|q5W;9Q8i_=pBuSzunx=U;
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
61 z9C)5jBoYw9^?EHyQl(M}1OlQcCX>lXB*ODN003Z&P17_@)3Pi=i0wb04<W?v-u}7K
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
62 zXmmQA+wDgE!qR9o8jr`%=ab_&uh(l?R=r;Tjiqon91I2-hIu?57~@*4h7h9uORK#=
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
63 gQItJW-{SoTm)8|5##k|m00000NkvXXu0mjf3JwksH2?qr
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
64
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
65
186f2afe9919 patch: disable nobinary when HGPLAIN=1
Mateusz Kwapich <mitrandir@fb.com>
parents: 23924
diff changeset
66
23924
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
67 $ hg diff --git -r 2 -r 3
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
68 diff --git a/binfile.bin b/nonbinfile
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
69 copy from binfile.bin
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
70 copy to nonbinfile
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
71 index 37ba3d1c6f17137d9c5f5776fa040caf5fe73ff9..8e27be7d6154a1f68ea9160ef0e18691d20560dc
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
72 GIT binary patch
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
73 literal 5
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
74 Mc$_OqttjCF00uV!&;S4c
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
75
0db6810e84e8 diff: use binary diff when copy source is binary
Martin von Zweigbergk <martinvonz@google.com>
parents: 21790
diff changeset
76
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
77 $ cd ..