annotate tests/test-merge9.t @ 43198:c16fe77e340a

pathcopies: give up any optimization based on `introrev` Between 8a0136f69027 and d98fb3f42f33, we sped up the search for the introduction revision during path copies. However, further checking show that finding the introduction revision is still expensive and that we are better off without it. So we simply drop it and only rely on the linkrev optimisation. I ran `perfpathcopies` on 6989 pair of revision in the pypy repository (`hg perfhelper-pathcopies`. The result is massively in favor of dropping this condition. The result of the copy tracing are unchanged. Attempt to use a smaller changes preserving linkrev usage were unsuccessful, it can return wrong result. The following changesets broke test-mv-cp-st-diff.t - if not f.isintroducedafter(limit): + if limit >= 0 and f.linkrev() < limit: return None Here are various numbers (before this changeset/after this changesets) source destination before after saved-time ratio worth cases e66f24650daf 695dfb0f493b 1.062843 1.246369 -0.183526 1.172675 c979853a3b6a 8d60fe293e79 1.036985 1.196414 -0.159429 1.153743 22349fa2fc33 fbb1c9fd86c0 0.879926 1.038682 -0.158756 1.180420 682b98f3e672 a4878080a536 0.909952 1.063801 -0.153849 1.169074 5adabc9b9848 920958a93997 0.993622 1.147452 -0.153830 1.154817 worse 1% dbfbfcf077e9 aea8f2fd3593 1.016595 1.082999 -0.066404 1.065320 worse 5% c95f1ced15f2 7d29d5e39734 0.453694 0.471156 -0.017462 1.038488 worse 10% 3e144ed1d5b7 2aef0e942480 0.035140 0.037535 -0.002395 1.068156 worse 25% 321fc60db035 801748ba582a 0.009267 0.009325 -0.000058 1.006259 median 2088ce763fc2 e6991321d78b 0.000665 0.000651 0.000014 0.978947 best 25% 915631a97de6 385b31354be6 0.040743 0.040363 0.000380 0.990673 best 10% ad495c36a765 19c10384d3e7 0.431658 0.411490 0.020168 0.953278 best 5% d13ae7d283ae 813c99f810ac 1.141404 1.075346 0.066058 0.942126 best 1% 81593cb4a496 99ae11866969 1.833297 0.063823 1.769474 0.034813 best cases c3b14617fbd7 743a0fcaa4eb 1101.811740 2.735970 1099.075770 0.002483 c3b14617fbd7 9ba6ab77fd29 1116.753953 2.800729 1113.953224 0.002508 058b99d6e81f 57e249b7a3ea 1246.128485 3.042762 1243.085723 0.002442 9a8c361aab49 0354a250d371 1253.111894 3.085796 1250.026098 0.002463 442dbbc53c68 3ec1002a818c 1261.786294 3.138607 1258.647687 0.002487 As one can see, the average case is not really impacted. However, the worth case we get after this changeset are much better than the one we had before it. We have 30 pairs where improvements are above 10 minutes. This reflect in the combined time for all pairs before: 26256s after: 1300s (-95%) If we remove these pathological 30 cases, we still see a significant improvements: before: 1631s after: 1245s (-24%)
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 10 Oct 2019 03:49:33 +0200
parents 41ef02ba329b
children 8d72e29ad1e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
1 test that we don't interrupt the merge session if
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
2 a file-level merge failed
4682
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
3
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
4 $ hg init repo
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
5 $ cd repo
4682
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
6
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
7 $ echo foo > foo
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
8 $ echo a > bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
9 $ hg ci -Am 'add foo'
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
10 adding bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
11 adding foo
4682
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
12
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
13 $ hg mv foo baz
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
14 $ echo b >> bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
15 $ echo quux > quux1
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
16 $ hg ci -Am 'mv foo baz'
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
17 adding quux1
4682
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
18
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
19 $ hg up -qC 0
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
20 $ echo >> foo
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
21 $ echo c >> bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
22 $ echo quux > quux2
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
23 $ hg ci -Am 'change foo'
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
24 adding quux2
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
25 created new head
4682
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
26
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
27 test with the rename on the remote side
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
28 $ HGMERGE=false hg merge
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
29 merging bar
26618
8e6d5b7317e6 merge.mergestate: perform all premerges before any merges (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 26614
diff changeset
30 merging foo and baz to baz
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
31 merging bar failed!
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
32 1 files updated, 1 files merged, 0 files removed, 1 files unresolved
35704
41ef02ba329b merge: add `--abort` flag which can abort the merge
Pulkit Goyal <7895pulkit@gmail.com>
parents: 26618
diff changeset
33 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12314
diff changeset
34 [1]
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
35 $ hg resolve -l
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
36 U bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
37 R baz
4682
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
38
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
39 test with the rename on the local side
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
40 $ hg up -C 1
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
41 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
42 $ HGMERGE=false hg merge
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
43 merging bar
26618
8e6d5b7317e6 merge.mergestate: perform all premerges before any merges (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 26614
diff changeset
44 merging baz and foo to baz
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
45 merging bar failed!
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
46 1 files updated, 1 files merged, 0 files removed, 1 files unresolved
35704
41ef02ba329b merge: add `--abort` flag which can abort the merge
Pulkit Goyal <7895pulkit@gmail.com>
parents: 26618
diff changeset
47 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12314
diff changeset
48 [1]
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 4682
diff changeset
49
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
50 show unresolved
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
51 $ hg resolve -l
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
52 U bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
53 R baz
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 4682
diff changeset
54
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
55 unmark baz
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
56 $ hg resolve -u baz
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 4682
diff changeset
57
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
58 show
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
59 $ hg resolve -l
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
60 U bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
61 U baz
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
62 $ hg st
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
63 M bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
64 M baz
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
65 M quux2
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
66 ? bar.orig
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 4682
diff changeset
67
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
68 re-resolve baz
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
69 $ hg resolve baz
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
70 merging baz and foo to baz
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 4682
diff changeset
71
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
72 after resolve
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
73 $ hg resolve -l
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
74 U bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
75 R baz
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
76
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
77 resolve all warning
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
78 $ hg resolve
21940
9209c02f1f25 resolve: report no argument warning using a hint
Nathan Goldbaum <ngoldbau@ucsc.edu>
parents: 16913
diff changeset
79 abort: no files or directories specified
26352
e635bc9bb7d9 resolve: consistently describe re-merge + unresolved
timeless@mozdev.org
parents: 21940
diff changeset
80 (use --all to re-merge all unresolved files)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12314
diff changeset
81 [255]
7527
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 6518
diff changeset
82
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
83 resolve all
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
84 $ hg resolve -a
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
85 merging bar
26614
ef1eb6df7071 simplemerge: move conflict warning message to filemerge
Siddharth Agarwal <sid0@fb.com>
parents: 26352
diff changeset
86 warning: conflicts while merging bar! (edit, then use 'hg resolve --mark')
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12314
diff changeset
87 [1]
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 4682
diff changeset
88
11982
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
89 after
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
90 $ hg resolve -l
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
91 U bar
56d9b73487ff tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8167
diff changeset
92 R baz
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15501
diff changeset
93
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15501
diff changeset
94 $ cd ..