annotate tests/test-convert-bzr-merges.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 89872688893f
children 30a027c0e327
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26066
89872688893f tests: move '#require bzr' into .t files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
1 #require bzr
89872688893f tests: move '#require bzr' into .t files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
2
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
3 N.B. bzr 1.13 has a bug that breaks this test. If you see this
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
4 test fail, check your bzr version. Upgrading to bzr 1.13.1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
5 should fix it.
7053
209ef5f3534c convert: add bzr source
Marek Kubica <marek@xivilization.net>
parents:
diff changeset
6
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
7 $ . "$TESTDIR/bzr-definitions"
8084
5b3fee9c1f4d Add comment about this test failing under bzr 1.13 due to a bug in bzr.
Greg Ward <greg-hg@gerg.ca>
parents: 7604
diff changeset
8
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
9 test multiple merges at once
7053
209ef5f3534c convert: add bzr source
Marek Kubica <marek@xivilization.net>
parents:
diff changeset
10
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
11 $ mkdir test-multimerge
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
12 $ cd test-multimerge
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
13 $ bzr init -q source
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
14 $ cd source
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
15 $ echo content > file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
16 $ bzr add -q file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
17 $ bzr commit -q -m 'Initial add'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
18 $ cd ..
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
19 $ bzr branch -q source source-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
20 $ cd source-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
21 $ echo morecontent >> file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
22 $ echo evenmorecontent > file-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
23 $ bzr add -q file-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
24 $ bzr commit -q -m 'Added branch1 file'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
25 $ cd ../source
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
26 $ sleep 1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
27 $ echo content > file-parent
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
28 $ bzr add -q file-parent
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
29 $ bzr commit -q -m 'Added parent file'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
30 $ cd ..
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
31 $ bzr branch -q source source-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
32 $ cd source-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
33 $ echo somecontent > file-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
34 $ bzr add -q file-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
35 $ bzr commit -q -m 'Added brach2 file'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
36 $ sleep 1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
37 $ cd ../source
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
38 $ bzr merge -q ../source-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
39 $ bzr merge -q --force ../source-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
40 $ bzr commit -q -m 'Merged branches'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
41 $ cd ..
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
42 $ hg convert --datesort source source-hg
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
43 initializing destination source-hg repository
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
44 scanning source...
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
45 sorting...
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
46 converting...
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
47 4 Initial add
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
48 3 Added branch1 file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
49 2 Added parent file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
50 1 Added brach2 file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
51 0 Merged branches
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
52 $ glog -R source-hg
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
53 o 5@source "(octopus merge fixup)" files:
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
54 |\
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
55 | o 4@source "Merged branches" files: file-branch2
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
56 | |\
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
57 o---+ 3@source-branch2 "Added brach2 file" files: file-branch2
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
58 / /
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
59 | o 2@source "Added parent file" files: file-parent
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
60 | |
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
61 o | 1@source-branch1 "Added branch1 file" files: file file-branch1
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
62 |/
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
63 o 0@source "Initial add" files: file
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
64
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
65 $ manifest source-hg tip
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
66 % manifest of tip
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
67 644 file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
68 644 file-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
69 644 file-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
70 644 file-parent
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16060
diff changeset
71
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16060
diff changeset
72 $ cd ..