##// END OF EJS Templates
bookmarks: explicitly track identical bookmarks...
Gregory Szorc -
r23081:e62c330a stable
parent child Browse files
Show More
@@ -271,6 +271,7 b' def compare(repo, srcmarks, dstmarks,'
271 :diverge: diverge
271 :diverge: diverge
272 :differ: changed, but changeset referred on src is unknown on dst
272 :differ: changed, but changeset referred on src is unknown on dst
273 :invalid: unknown on both side
273 :invalid: unknown on both side
274 :same: same on both side
274
275
275 Each elements of lists in result tuple is tuple "(bookmark name,
276 Each elements of lists in result tuple is tuple "(bookmark name,
276 changeset ID on source side, changeset ID on destination
277 changeset ID on source side, changeset ID on destination
@@ -299,12 +300,9 b' def compare(repo, srcmarks, dstmarks,'
299 else:
300 else:
300 srcmarkset = set(srcmarks)
301 srcmarkset = set(srcmarks)
301 dstmarkset = set(dstmarks)
302 dstmarkset = set(dstmarks)
302 bset = srcmarkset ^ dstmarkset
303 bset = srcmarkset | dstmarkset
303 for b in srcmarkset & dstmarkset:
304 if srchex(srcmarks[b]) != dsthex(dstmarks[b]):
305 bset.add(b)
306
304
307 results = ([], [], [], [], [], [], [])
305 results = ([], [], [], [], [], [], [], [])
308 addsrc = results[0].append
306 addsrc = results[0].append
309 adddst = results[1].append
307 adddst = results[1].append
310 advsrc = results[2].append
308 advsrc = results[2].append
@@ -312,6 +310,7 b' def compare(repo, srcmarks, dstmarks,'
312 diverge = results[4].append
310 diverge = results[4].append
313 differ = results[5].append
311 differ = results[5].append
314 invalid = results[6].append
312 invalid = results[6].append
313 same = results[7].append
315
314
316 for b in sorted(bset):
315 for b in sorted(bset):
317 if b not in srcmarks:
316 if b not in srcmarks:
@@ -324,7 +323,9 b' def compare(repo, srcmarks, dstmarks,'
324 else:
323 else:
325 scid = srchex(srcmarks[b])
324 scid = srchex(srcmarks[b])
326 dcid = dsthex(dstmarks[b])
325 dcid = dsthex(dstmarks[b])
327 if scid in repo and dcid in repo:
326 if scid == dcid:
327 same((b, scid, dcid))
328 elif scid in repo and dcid in repo:
328 sctx = repo[scid]
329 sctx = repo[scid]
329 dctx = repo[dcid]
330 dctx = repo[dcid]
330 if sctx.rev() < dctx.rev():
331 if sctx.rev() < dctx.rev():
@@ -365,7 +366,7 b' def _diverge(ui, b, path, localmarks):'
365 def updatefromremote(ui, repo, remotemarks, path, trfunc, explicit=()):
366 def updatefromremote(ui, repo, remotemarks, path, trfunc, explicit=()):
366 ui.debug("checking for updated bookmarks\n")
367 ui.debug("checking for updated bookmarks\n")
367 localmarks = repo._bookmarks
368 localmarks = repo._bookmarks
368 (addsrc, adddst, advsrc, advdst, diverge, differ, invalid
369 (addsrc, adddst, advsrc, advdst, diverge, differ, invalid, same
369 ) = compare(repo, remotemarks, localmarks, dsthex=hex)
370 ) = compare(repo, remotemarks, localmarks, dsthex=hex)
370
371
371 status = ui.status
372 status = ui.status
@@ -333,7 +333,7 b' def _pushdiscoverybookmarks(pushop):'
333 explicit = set(pushop.bookmarks)
333 explicit = set(pushop.bookmarks)
334
334
335 comp = bookmod.compare(repo, repo._bookmarks, remotebookmark, srchex=hex)
335 comp = bookmod.compare(repo, repo._bookmarks, remotebookmark, srchex=hex)
336 addsrc, adddst, advsrc, advdst, diverge, differ, invalid = comp
336 addsrc, adddst, advsrc, advdst, diverge, differ, invalid, same = comp
337 for b, scid, dcid in advsrc:
337 for b, scid, dcid in advsrc:
338 if b in explicit:
338 if b in explicit:
339 explicit.remove(b)
339 explicit.remove(b)
General Comments 0
You need to be logged in to leave comments. Login now