Show More
@@ -226,11 +226,20 def checkheads(repo, remote, outgoing, r | |||
|
226 | 226 | # If there are more heads after the push than before, a suitable |
|
227 | 227 | # error message, depending on unsynced status, is displayed. |
|
228 | 228 | error = None |
|
229 | remotebookmarks = remote.listkeys('bookmarks') | |
|
230 | localbookmarks = repo._bookmarks | |
|
231 | ||
|
229 | 232 | for branch in branches: |
|
230 | 233 | newhs = set(newmap[branch]) |
|
231 | 234 | oldhs = set(oldmap[branch]) |
|
235 | dhs = None | |
|
232 | 236 | if len(newhs) > len(oldhs): |
|
233 | dhs = list(newhs - oldhs) | |
|
237 | # strip updates to existing remote heads from the new heads list | |
|
238 | bookmarkedheads = set([repo[bm].node() for bm in localbookmarks | |
|
239 | if bm in remotebookmarks and | |
|
240 | remote[bm] == repo[bm].ancestor(remote[bm])]) | |
|
241 | dhs = list(newhs - bookmarkedheads - oldhs) | |
|
242 | if dhs: | |
|
234 | 243 | if error is None: |
|
235 | 244 | if branch not in ('default', None): |
|
236 | 245 | error = _("push creates new remote head %s " |
@@ -149,6 +149,45 divergent bookmarks | |||
|
149 | 149 | Y 0:4e3505fd9583 |
|
150 | 150 | Z 1:0d2164f0ce0d |
|
151 | 151 | |
|
152 | update a remote bookmark from a non-head to a head | |
|
153 | ||
|
154 | $ hg up -q Y | |
|
155 | $ echo c3 > f2 | |
|
156 | $ hg ci -Am3 | |
|
157 | adding f2 | |
|
158 | created new head | |
|
159 | $ hg push ../a | |
|
160 | pushing to ../a | |
|
161 | searching for changes | |
|
162 | adding changesets | |
|
163 | adding manifests | |
|
164 | adding file changes | |
|
165 | added 1 changesets with 1 changes to 1 files (+1 heads) | |
|
166 | updating bookmark Y | |
|
167 | $ hg -R ../a book | |
|
168 | * X 1:0d2164f0ce0d | |
|
169 | Y 3:f6fc62dde3c0 | |
|
170 | Z 1:0d2164f0ce0d | |
|
171 | ||
|
172 | diverging a remote bookmark fails | |
|
173 | ||
|
174 | $ hg up -q 4e3505fd9583 | |
|
175 | $ echo c4 > f2 | |
|
176 | $ hg ci -Am4 | |
|
177 | adding f2 | |
|
178 | created new head | |
|
179 | $ hg book -f Y | |
|
180 | $ hg push ../a | |
|
181 | pushing to ../a | |
|
182 | searching for changes | |
|
183 | abort: push creates new remote head 4efff6d98829! | |
|
184 | (did you forget to merge? use push -f to force) | |
|
185 | [255] | |
|
186 | $ hg -R ../a book | |
|
187 | * X 1:0d2164f0ce0d | |
|
188 | Y 3:f6fc62dde3c0 | |
|
189 | Z 1:0d2164f0ce0d | |
|
190 | ||
|
152 | 191 | hgweb |
|
153 | 192 | |
|
154 | 193 | $ cat <<EOF > .hg/hgrc |
@@ -166,7 +205,7 hgweb | |||
|
166 | 205 | phases |
|
167 | 206 | namespaces |
|
168 | 207 | $ hg debugpushkey http://localhost:$HGPORT/ bookmarks |
|
169 | Y 4e3505fd95835d721066b76e75dbb8cc554d7f77 | |
|
208 | Y 4efff6d98829d9c824c621afd6e3f01865f5439f | |
|
170 | 209 | foobar 9b140be1080824d768c5a4691a564088eede71f9 |
|
171 | 210 | Z 0d2164f0ce0d8f1d6f94351eba04b794909be66c |
|
172 | 211 | foo 0000000000000000000000000000000000000000 |
@@ -202,12 +241,12 hgweb | |||
|
202 | 241 | adding changesets |
|
203 | 242 | adding manifests |
|
204 | 243 | adding file changes |
|
205 |
added |
|
|
244 | added 5 changesets with 5 changes to 3 files (+3 heads) | |
|
206 | 245 | updating to branch default |
|
207 | 246 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
208 | 247 | $ hg -R cloned-bookmarks bookmarks |
|
209 | 248 | X 1:9b140be10808 |
|
210 |
Y |
|
|
249 | Y 4:4efff6d98829 | |
|
211 | 250 | Z 2:0d2164f0ce0d |
|
212 | 251 | foo -1:000000000000 |
|
213 | 252 | foobar 1:9b140be10808 |
General Comments 0
You need to be logged in to leave comments.
Login now