Mercurial > evolve
annotate tests/test-exchange-A2.t @ 1362:73e5b5280c1c
inhibit: improve performance of transaction wrapping
Before this patch, transaction wrapping was the most expensive part of inhibit
computation wise. This patch changes the revset that we use in the transaction
wrapping to make it ~50x faster to compute:
revset #0: obsolete() - hidden()
0) wall 0.000214 comb 0.000000 user 0.000000 sys 0.000000 (best of 11209)
vs
revset #0: (not hidden()) and obsolete()
0) wall 0.010965 comb 0.010000 user 0.010000 sys 0.000000 (best of 237)
author | Laurent Charignon <lcharignon@fb.com> |
---|---|
date | Sat, 13 Jun 2015 11:14:27 -0700 |
parents | a49f2e7a2755 |
children | 778afb036245 |
rev | line source |
---|---|
828
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
1 |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
2 |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
3 Initial setup |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
4 |
829
0943f327e2fb
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
828
diff
changeset
|
5 $ . $TESTDIR/_exc-util.sh |
828
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
6 |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
7 === A.2 Two heads === |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
8 |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
9 .. {{{ |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
10 .. ⇠○ B |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
11 .. ⇠◔ | A |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
12 .. |/ |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
13 .. ● O |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
14 .. }}} |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
15 .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
16 .. Marker exist from: |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
17 .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
18 .. * A |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
19 .. * B |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
20 .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
21 .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
22 .. Command run: |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
23 .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
24 .. * hg push -r A |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
25 .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
26 .. Expected exchange: |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
27 .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
28 .. * chain from A |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
29 .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
30 .. Expected Exclude: |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
31 .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
32 .. * chain from B |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
33 |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
34 initial |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
35 |
830
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
36 $ setuprepos A.2 |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
37 creating test repo for test case A.2 |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
38 - pulldest |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
39 - main |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
40 - pushdest |
f3b3a09ba312
exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
829
diff
changeset
|
41 cd into `main` and proceed with env setup |
828
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
42 $ cd main |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
43 $ mkcommit A |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
44 $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid 'desc(A)'` |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
45 $ hg up .^ |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
46 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
47 $ mkcommit B |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
48 created new head |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
49 $ hg debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb `getid 'desc(B)'` |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
50 $ hg log -G |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
51 @ 35b183996678 (draft): B |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
52 | |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
53 | o f5bc6836db60 (draft): A |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
54 |/ |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
55 o a9bdc8b26820 (public): O |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
56 |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
57 $ hg debugobsolete |
1065
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
58 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
59 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
828
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
60 $ cd .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
61 $ cd .. |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
62 |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
63 |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
64 Actual Test |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
65 --------------- |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
66 |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
67 $ dotest A.2 A |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
68 ## Running testcase A.2 |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
69 # testing echange of "A" (f5bc6836db60) |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
70 ## initial state |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
71 # obstore: main |
1065
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
72 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
73 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
74 # obstore: pushdest |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
75 # obstore: pulldest |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
76 ## pushing "A" from main to pushdest |
828
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
77 pushing to pushdest |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
78 searching for changes |
1089
cdd22a5e5ef1
enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1088
diff
changeset
|
79 remote: adding changesets |
cdd22a5e5ef1
enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1088
diff
changeset
|
80 remote: adding manifests |
cdd22a5e5ef1
enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1088
diff
changeset
|
81 remote: adding file changes |
cdd22a5e5ef1
enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1088
diff
changeset
|
82 remote: added 1 changesets with 1 changes to 1 files |
1093
a49f2e7a2755
obsexch: respect todosteps when using the old push
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1089
diff
changeset
|
83 remote: 1 new obsolescence markers |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
84 ## post push state |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
85 # obstore: main |
1065
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
86 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
87 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
88 # obstore: pushdest |
1065
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
89 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
90 # obstore: pulldest |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
91 ## pulling "f5bc6836db60" from main into pulldest |
828
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
92 pulling from main |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
93 searching for changes |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
94 adding changesets |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
95 adding manifests |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
96 adding file changes |
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
97 added 1 changesets with 1 changes to 1 files |
1093
a49f2e7a2755
obsexch: respect todosteps when using the old push
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1089
diff
changeset
|
98 1 new obsolescence markers |
828
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
99 (run 'hg update' to get a working copy) |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
100 ## post pull state |
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
101 # obstore: main |
1065
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
102 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
103 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
104 # obstore: pushdest |
1065
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
105 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
106 # obstore: pulldest |
1065
f355bbc124fc
test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1060
diff
changeset
|
107 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} |
828
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
108 |
831
a6af6919888d
exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
830
diff
changeset
|
109 |
828
c362513b3c7e
exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
110 $ cd .. |