annotate tests/test-evolve-inmemory.t @ 5778:84affb254cdf

evolvecmd: don't update working copy when using in-memory merge This patch removes the update of the working copy after each in-memory merge and only instead updates the working copy afterwards (if requested). There's still no significant speedup in the hg repo. It seems that the cost of updating the working copy is not large enough to make much difference, and the cost of reading and updating obsmarkers is relatively high in that repo. A significant part of the time (~35%) is spent in `repoview.computehidden()` because it is recalculated for every commit (seems like potential for improvement). I made similar changes in the mozilla-unified repo (which has a significantly larger working copy), by adding 10 commits each changing one line of a file. There, evolving 9 of those commits took 34s before this patch and 20s after. I measured similar speedups in an internal repo (9.0s -> 5.2s).
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 24 Nov 2020 16:33:24 -0800
parents c5dfbbe4363d
children fd039a7f0c3c c1094cce56ed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5776
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
1 Tests running `hg evolve` with in-memory merge.
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
3 $ . $TESTDIR/testlib/common.sh
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
4
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
5 $ cat >> $HGRCPATH <<EOF
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
6 > [extensions]
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
7 > evolve =
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
8 > drawdag=$RUNTESTDIR/drawdag.py
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
9 > [alias]
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
10 > glog = log -G -T '{rev}:{node|short} {separate(" ", phase, tags)}\n{desc|firstline}'
5777
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
11 > [experimental]
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
12 > evolution.in-memory = yes
5776
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
13 > EOF
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
14
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
15 Test evolving a single orphan
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
16
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
17 $ hg init single-orphan
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
18 $ cd single-orphan
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
19 $ hg debugdrawdag <<'EOS'
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
20 > C # C/c = c\n
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
21 > B2 | # B2/b = b2\n
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
22 > | B # B/b = b\n
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
23 > \ / # replace: B -> B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
24 > A
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
25 > EOS
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
26 1 new orphan changesets
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
27 $ hg evolve
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
28 move:[3] C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
29 atop:[2] B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
30 $ hg glog
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
31 o 4:52da76e91abb draft tip
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
32 | C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
33 | x 3:bc77848cde3a draft C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
34 | | C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
35 o | 2:377a194b9b8a draft B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
36 | | B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
37 | x 1:830b6315076c draft B
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
38 |/ B
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
39 o 0:426bada5c675 draft A
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
40 A
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
41 $ hg cat -r tip b c
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
42 b2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
43 c
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
44 $ cd ..
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
45
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
46 Test that in-memory evolve works when there are conflicts
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
47 and after continuing.
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
48
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
49 $ hg init conflicts
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
50 $ cd conflicts
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
51 $ hg debugdrawdag <<'EOS'
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
52 > E # E/e = e\n
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
53 > |
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
54 > D # D/b = d\n
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
55 > |
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
56 > C # C/c = c\n
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
57 > B2 | # B2/b = b2\n
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
58 > | B # B/b = b\n
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
59 > \ / # replace: B -> B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
60 > A
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
61 > EOS
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
62 3 new orphan changesets
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
63 $ hg evolve
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
64 move:[3] C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
65 atop:[2] B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
66 move:[4] D
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
67 merging b
5777
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
68 hit merge conflicts; retrying merge in working copy
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
69 merging b
5776
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
70 warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
71 unresolved merge conflicts
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
72 (see 'hg help evolve.interrupted')
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
73 [240]
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
74 $ hg glog
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
75 @ 6:52da76e91abb draft tip
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
76 | C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
77 | * 5:eae7899dd92b draft E
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
78 | | E
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
79 | % 4:57e51f6a6d36 draft D
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
80 | | D
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
81 | x 3:bc77848cde3a draft C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
82 | | C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
83 o | 2:377a194b9b8a draft B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
84 | | B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
85 | x 1:830b6315076c draft B
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
86 |/ B
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
87 o 0:426bada5c675 draft A
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
88 A
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
89 $ cat c
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
90 c
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
91 $ cat b
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
92 <<<<<<< destination: 52da76e91abb - test: C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
93 b2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
94 =======
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
95 d
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
96 >>>>>>> evolving: 57e51f6a6d36 D - test: D
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
97 $ echo d2 > b
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
98 $ hg resolve -m
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
99 (no more unresolved files)
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
100 continue: hg evolve --continue
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
101 $ hg evolve --continue
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
102 evolving 4:57e51f6a6d36 "D"
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
103 move:[5] E
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
104 atop:[7] D
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
105 $ hg glog
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
106 o 8:3c658574f8ed draft tip
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
107 | E
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
108 o 7:16e609b952e8 draft
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
109 | D
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
110 o 6:52da76e91abb draft
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
111 | C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
112 | x 5:eae7899dd92b draft E
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
113 | | E
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
114 | x 4:57e51f6a6d36 draft D
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
115 | | D
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
116 | x 3:bc77848cde3a draft C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
117 | | C
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
118 o | 2:377a194b9b8a draft B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
119 | | B2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
120 | x 1:830b6315076c draft B
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
121 |/ B
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
122 o 0:426bada5c675 draft A
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
123 A
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
124 $ hg cat -r tip b c e
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
125 d2
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
126 c
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
127 e
453ba695c3d4 tests: add test for in-memory evolve, not actually in-memory yet
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
128 $ cd ..
5777
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
129
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
130 Test that in-memory merge is disabled if there's a precommit hook
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
131
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
132 $ hg init precommit-hook
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
133 $ cd precommit-hook
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
134 $ hg debugdrawdag <<'EOS'
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
135 > C # C/c = c\n
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
136 > B2 | # B2/b = b2\n
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
137 > | B # B/b = b\n
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
138 > \ / # replace: B -> B2
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
139 > A
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
140 > EOS
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
141 1 new orphan changesets
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
142 $ cat >> .hg/hgrc <<EOF
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
143 > [hooks]
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
144 > precommit = echo "running precommit hook"
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
145 > EOF
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
146 The hook is not run with in-memory=force
5778
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
147 $ hg co B2
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
148 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
149 $ hg evolve --config experimental.evolution.in-memory=force --update
5777
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
150 move:[3] C
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
151 atop:[2] B2
5778
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
152 working directory is now at 52da76e91abb
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
153 $ hg glog
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
154 @ 4:52da76e91abb draft tip
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
155 | C
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
156 | x 3:bc77848cde3a draft C
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
157 | | C
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
158 o | 2:377a194b9b8a draft B2
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
159 | | B2
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
160 | x 1:830b6315076c draft B
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
161 |/ B
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
162 o 0:426bada5c675 draft A
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
163 A
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
164 $ hg co tip^
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
165 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
166 $ hg amend -m B3
5777
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
167 1 new orphan changesets
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
168 The hook is run with in-memory=yes
5778
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
169 $ hg next --config experimental.evolution.in-memory=yes
5777
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
170 move:[4] C
5778
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
171 atop:[5] B3
5777
c5dfbbe4363d evolve: when relocating, optionally first try to do it using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5776
diff changeset
172 running precommit hook
5778
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
173 working directory is now at aeee7323c054
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
174 $ hg glog
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
175 @ 6:aeee7323c054 draft tip
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
176 | C
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
177 o 5:908ce5f9d7eb draft
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
178 | B3
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
179 | x 3:bc77848cde3a draft C
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
180 | | C
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
181 +---x 2:377a194b9b8a draft B2
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
182 | | B2
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
183 | x 1:830b6315076c draft B
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
184 |/ B
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
185 o 0:426bada5c675 draft A
84affb254cdf evolvecmd: don't update working copy when using in-memory merge
Martin von Zweigbergk <martinvonz@google.com>
parents: 5777
diff changeset
186 A