Mercurial > hg
annotate tests/test-pull-branch.t @ 30706:2e4862646f02
repair: speed up stripping of many roots
repair.strip() expects a set of root revisions to strip. It then
builds the full set of descedants by walking the descandants of
each. It is rare that more than a few roots get passed in, but if that
happens, it will wastefully walk the changelog for each root. So let's
just walk it once.
I noticed this because the narrowhg extension was passing not only
roots, but all the commits to strip. When there were tens of thousands
of commits to strip, this resulted in quadratic behavior with that
extension.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 04 Jan 2017 10:07:12 -0800 |
parents | ca2a0a654f54 |
children | 1b5c61d38a52 |
rev | line source |
---|---|
12279 | 1 $ hg init t |
2 $ cd t | |
3 $ echo 1 > foo | |
4 $ hg ci -Am1 # 0 | |
5 adding foo | |
6 $ hg branch branchA | |
7 marked working directory as branch branchA | |
15615 | 8 (branches are permanent and global, did you want a bookmark?) |
12279 | 9 $ echo a1 > foo |
10 $ hg ci -ma1 # 1 | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
11 |
12279 | 12 $ cd .. |
13 $ hg init tt | |
14 $ cd tt | |
15 $ hg pull ../t | |
16 pulling from ../t | |
17 requesting all changes | |
18 adding changesets | |
19 adding manifests | |
20 adding file changes | |
21 added 2 changesets with 2 changes to 1 files | |
22 (run 'hg update' to get a working copy) | |
23 $ hg up branchA | |
24 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
25 |
12279 | 26 $ cd ../t |
27 $ echo a2 > foo | |
28 $ hg ci -ma2 # 2 | |
29 | |
30 Create branch B: | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
31 |
12279 | 32 $ hg up 0 |
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
34 $ hg branch branchB | |
35 marked working directory as branch branchB | |
36 $ echo b1 > foo | |
37 $ hg ci -mb1 # 3 | |
38 | |
39 $ cd ../tt | |
40 | |
41 A new branch is there | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
42 |
12279 | 43 $ hg pull -u ../t |
44 pulling from ../t | |
45 searching for changes | |
46 adding changesets | |
47 adding manifests | |
48 adding file changes | |
49 added 2 changesets with 2 changes to 1 files (+1 heads) | |
50 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
51 | |
52 Develop both branches: | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
53 |
12279 | 54 $ cd ../t |
55 $ hg up branchA | |
56 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
57 $ echo a3 > foo | |
58 $ hg ci -ma3 # 4 | |
59 $ hg up branchB | |
60 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
61 $ echo b2 > foo | |
62 $ hg ci -mb2 # 5 | |
63 | |
64 $ cd ../tt | |
65 | |
66 Should succeed, no new heads: | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
67 |
12279 | 68 $ hg pull -u ../t |
69 pulling from ../t | |
70 searching for changes | |
71 adding changesets | |
72 adding manifests | |
73 adding file changes | |
74 added 2 changesets with 2 changes to 1 files | |
75 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
76 | |
77 Add a head on other branch: | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
78 |
12279 | 79 $ cd ../t |
80 $ hg up branchA | |
81 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
82 $ echo a4 > foo | |
83 $ hg ci -ma4 # 6 | |
84 $ hg up branchB | |
85 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
86 $ echo b3.1 > foo | |
87 $ hg ci -m b3.1 # 7 | |
88 $ hg up 5 | |
89 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
90 $ echo b3.2 > foo | |
91 $ hg ci -m b3.2 # 8 | |
92 created new head | |
93 | |
94 $ cd ../tt | |
95 | |
96 Should succeed because there is only one head on our branch: | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
97 |
12279 | 98 $ hg pull -u ../t |
99 pulling from ../t | |
100 searching for changes | |
101 adding changesets | |
102 adding manifests | |
103 adding file changes | |
104 added 3 changesets with 3 changes to 1 files (+1 heads) | |
105 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
106 |
12279 | 107 $ cd ../t |
108 $ hg up -C branchA | |
109 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
110 $ echo a5.1 > foo | |
111 $ hg ci -ma5.1 # 9 | |
112 $ hg up 6 | |
113 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
114 $ echo a5.2 > foo | |
115 $ hg ci -ma5.2 # 10 | |
116 created new head | |
117 $ hg up 7 | |
118 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
119 $ echo b4.1 > foo | |
120 $ hg ci -m b4.1 # 11 | |
121 $ hg up -C 8 | |
122 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
123 $ echo b4.2 > foo | |
124 $ hg ci -m b4.2 # 12 | |
7372
e17dbf140035
pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
125 |
12279 | 126 $ cd ../tt |
127 | |
128 $ hg pull -u ../t | |
129 pulling from ../t | |
130 searching for changes | |
131 adding changesets | |
132 adding manifests | |
133 adding file changes | |
134 added 4 changesets with 4 changes to 1 files (+1 heads) | |
14485
610873cf064a
Make pull -u behave like pull && update
Brendan Cully <brendan@kublai.com>
parents:
13804
diff
changeset
|
135 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
28030
ca2a0a654f54
update: warn about other topological head in pull and unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25295
diff
changeset
|
136 1 other heads for branch "branchA" |
12279 | 137 |
13803
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
138 Make changes on new branch on tt |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
139 |
14485
610873cf064a
Make pull -u behave like pull && update
Brendan Cully <brendan@kublai.com>
parents:
13804
diff
changeset
|
140 $ hg up 6 |
610873cf064a
Make pull -u behave like pull && update
Brendan Cully <brendan@kublai.com>
parents:
13804
diff
changeset
|
141 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
13803
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
142 $ hg branch branchC |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
143 marked working directory as branch branchC |
17345
4f8054d3171b
check-code: fix check for trailing whitespace on sh command lines
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
144 $ echo b1 > bar |
13804
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
145 $ hg ci -Am "commit on branchC on tt" |
13803
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
146 adding bar |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
147 |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
148 Make changes on default branch on t |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
149 |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
150 $ cd ../t |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
151 $ hg up -C default |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
152 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
17345
4f8054d3171b
check-code: fix check for trailing whitespace on sh command lines
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
153 $ echo a1 > bar |
13804
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
154 $ hg ci -Am "commit on default on t" |
13803
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
155 adding bar |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
156 |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
157 Pull branchC from tt |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
158 |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
159 $ hg pull ../tt |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
160 pulling from ../tt |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
161 searching for changes |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
162 adding changesets |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
163 adding manifests |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
164 adding file changes |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
165 added 1 changesets with 1 changes to 1 files (+1 heads) |
e380964d53f8
pull: don't suggest running hg merge when new heads are on different branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
12279
diff
changeset
|
166 (run 'hg heads' to see heads) |
13804
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
167 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
168 Make changes on default and branchC on tt |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
169 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
170 $ cd ../tt |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
171 $ hg pull ../t |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
172 pulling from ../t |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
173 searching for changes |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
174 adding changesets |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
175 adding manifests |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
176 adding file changes |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
177 added 1 changesets with 1 changes to 1 files (+1 heads) |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
178 (run 'hg heads' to see heads) |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
179 $ hg up -C default |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
180 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
181 $ echo a1 > bar1 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
182 $ hg ci -Am "commit on default on tt" |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
183 adding bar1 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
184 $ hg up branchC |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
185 2 files updated, 0 files merged, 1 files removed, 0 files unresolved |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
186 $ echo a1 > bar2 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
187 $ hg ci -Am "commit on branchC on tt" |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
188 adding bar2 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
189 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
190 Make changes on default and branchC on t |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
191 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
192 $ cd ../t |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
193 $ hg up default |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
194 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
195 $ echo a1 > bar3 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
196 $ hg ci -Am "commit on default on t" |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
197 adding bar3 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
198 $ hg up branchC |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
199 2 files updated, 0 files merged, 1 files removed, 0 files unresolved |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
200 $ echo a1 > bar4 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
201 $ hg ci -Am "commit on branchC on tt" |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
202 adding bar4 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
203 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
204 Pull from tt |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
205 |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
206 $ hg pull ../tt |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
207 pulling from ../tt |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
208 searching for changes |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
209 adding changesets |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
210 adding manifests |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
211 adding file changes |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
212 added 2 changesets with 2 changes to 2 files (+2 heads) |
7dc2bd4c0dc8
pull: new output message when there are multiple branches
Kevin Berridge <kevin.w.berridge@gmail.com>
parents:
13803
diff
changeset
|
213 (run 'hg heads .' to see heads, 'hg merge' to merge) |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15615
diff
changeset
|
214 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15615
diff
changeset
|
215 $ cd .. |