Show More
@@ -226,11 +226,20 def checkheads(repo, remote, outgoing, r | |||||
226 | # If there are more heads after the push than before, a suitable |
|
226 | # If there are more heads after the push than before, a suitable | |
227 | # error message, depending on unsynced status, is displayed. |
|
227 | # error message, depending on unsynced status, is displayed. | |
228 | error = None |
|
228 | error = None | |
|
229 | remotebookmarks = remote.listkeys('bookmarks') | |||
|
230 | localbookmarks = repo._bookmarks | |||
|
231 | ||||
229 | for branch in branches: |
|
232 | for branch in branches: | |
230 | newhs = set(newmap[branch]) |
|
233 | newhs = set(newmap[branch]) | |
231 | oldhs = set(oldmap[branch]) |
|
234 | oldhs = set(oldmap[branch]) | |
|
235 | dhs = None | |||
232 | if len(newhs) > len(oldhs): |
|
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 | if error is None: |
|
243 | if error is None: | |
235 | if branch not in ('default', None): |
|
244 | if branch not in ('default', None): | |
236 | error = _("push creates new remote head %s " |
|
245 | error = _("push creates new remote head %s " |
@@ -149,6 +149,45 divergent bookmarks | |||||
149 | Y 0:4e3505fd9583 |
|
149 | Y 0:4e3505fd9583 | |
150 | Z 1:0d2164f0ce0d |
|
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 | hgweb |
|
191 | hgweb | |
153 |
|
192 | |||
154 | $ cat <<EOF > .hg/hgrc |
|
193 | $ cat <<EOF > .hg/hgrc | |
@@ -166,7 +205,7 hgweb | |||||
166 | phases |
|
205 | phases | |
167 | namespaces |
|
206 | namespaces | |
168 | $ hg debugpushkey http://localhost:$HGPORT/ bookmarks |
|
207 | $ hg debugpushkey http://localhost:$HGPORT/ bookmarks | |
169 | Y 4e3505fd95835d721066b76e75dbb8cc554d7f77 |
|
208 | Y 4efff6d98829d9c824c621afd6e3f01865f5439f | |
170 | foobar 9b140be1080824d768c5a4691a564088eede71f9 |
|
209 | foobar 9b140be1080824d768c5a4691a564088eede71f9 | |
171 | Z 0d2164f0ce0d8f1d6f94351eba04b794909be66c |
|
210 | Z 0d2164f0ce0d8f1d6f94351eba04b794909be66c | |
172 | foo 0000000000000000000000000000000000000000 |
|
211 | foo 0000000000000000000000000000000000000000 | |
@@ -202,12 +241,12 hgweb | |||||
202 | adding changesets |
|
241 | adding changesets | |
203 | adding manifests |
|
242 | adding manifests | |
204 | adding file changes |
|
243 | adding file changes | |
205 |
added |
|
244 | added 5 changesets with 5 changes to 3 files (+3 heads) | |
206 | updating to branch default |
|
245 | updating to branch default | |
207 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
246 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
208 | $ hg -R cloned-bookmarks bookmarks |
|
247 | $ hg -R cloned-bookmarks bookmarks | |
209 | X 1:9b140be10808 |
|
248 | X 1:9b140be10808 | |
210 |
Y |
|
249 | Y 4:4efff6d98829 | |
211 | Z 2:0d2164f0ce0d |
|
250 | Z 2:0d2164f0ce0d | |
212 | foo -1:000000000000 |
|
251 | foo -1:000000000000 | |
213 | foobar 1:9b140be10808 |
|
252 | foobar 1:9b140be10808 |
General Comments 0
You need to be logged in to leave comments.
Login now