##// END OF EJS Templates
discovery: factor out calculation of heads to not warn about...
Ryan McElroy -
r26862:894f54d8 default
parent child Browse files
Show More
@@ -238,6 +238,23 b' def _oldheadssummary(repo, remoteheads, '
238 238 unsynced = set()
239 239 return {None: (oldheads, newheads, unsynced)}
240 240
241 def _nowarnheads(repo, remote, newbookmarks):
242 # Compute newly pushed bookmarks. We don't warn about bookmarked heads.
243 localbookmarks = repo._bookmarks
244 remotebookmarks = remote.listkeys('bookmarks')
245 bookmarkedheads = set()
246 for bm in localbookmarks:
247 rnode = remotebookmarks.get(bm)
248 if rnode and rnode in repo:
249 lctx, rctx = repo[bm], repo[rnode]
250 if bookmarks.validdest(repo, rctx, lctx):
251 bookmarkedheads.add(lctx.node())
252 else:
253 if bm in newbookmarks and bm not in remotebookmarks:
254 bookmarkedheads.add(repo[bm].node())
255
256 return bookmarkedheads
257
241 258 def checkheads(repo, remote, outgoing, remoteheads, newbranch=False, inc=False,
242 259 newbookmarks=[]):
243 260 """Check that a push won't add any outgoing head
@@ -268,19 +285,8 b' def checkheads(repo, remote, outgoing, r'
268 285 hint=_("use 'hg push --new-branch' to create"
269 286 " new remote branches"))
270 287
271 # 2. Compute newly pushed bookmarks. We don't warn about bookmarked heads.
272 localbookmarks = repo._bookmarks
273 remotebookmarks = remote.listkeys('bookmarks')
274 bookmarkedheads = set()
275 for bm in localbookmarks:
276 rnode = remotebookmarks.get(bm)
277 if rnode and rnode in repo:
278 lctx, rctx = repo[bm], repo[rnode]
279 if bookmarks.validdest(repo, rctx, lctx):
280 bookmarkedheads.add(lctx.node())
281 else:
282 if bm in newbookmarks and bm not in remotebookmarks:
283 bookmarkedheads.add(repo[bm].node())
288 # 2. Find heads that we need not warn about
289 nowarnheads = _nowarnheads(repo, remote, newbookmarks)
284 290
285 291 # 3. Check for new heads.
286 292 # If there are more heads after the push than before, a suitable
@@ -366,7 +372,7 b' def checkheads(repo, remote, outgoing, r'
366 372 " pushing new heads")
367 373 elif len(newhs) > len(oldhs):
368 374 # remove bookmarked or existing remote heads from the new heads list
369 dhs = sorted(newhs - bookmarkedheads - oldhs)
375 dhs = sorted(newhs - nowarnheads - oldhs)
370 376 if dhs:
371 377 if errormsg is None:
372 378 if branch not in ('default', None):
General Comments 0
You need to be logged in to leave comments. Login now