mercurial/bookmarks.py
changeset 24353 3f6bf9f29e7b
parent 24306 6ddc86eedc3b
child 24354 194e1e3ebc29
equal deleted inserted replaced
24352:d6dbe4d1c9bc 24353:3f6bf9f29e7b
   361                 differ((b, scid, dcid))
   361                 differ((b, scid, dcid))
   362 
   362 
   363     return results
   363     return results
   364 
   364 
   365 def _diverge(ui, b, path, localmarks):
   365 def _diverge(ui, b, path, localmarks):
       
   366     '''Return appropriate diverged bookmark for specified ``path``
       
   367 
       
   368     This returns None, if it is failed to assign any divergent
       
   369     bookmark name.
       
   370     '''
   366     if b == '@':
   371     if b == '@':
   367         b = ''
   372         b = ''
   368     # find a unique @ suffix
   373     # find a unique @ suffix
   369     for x in range(1, 100):
   374     for x in range(1, 100):
   370         n = '%s@%d' % (b, x)
   375         n = '%s@%d' % (b, x)
   371         if n not in localmarks:
   376         if n not in localmarks:
   372             break
   377             break
       
   378     else:
       
   379         n = None
   373     # try to use an @pathalias suffix
   380     # try to use an @pathalias suffix
   374     # if an @pathalias already exists, we overwrite (update) it
   381     # if an @pathalias already exists, we overwrite (update) it
   375     if path.startswith("file:"):
   382     if path.startswith("file:"):
   376         path = util.url(path).path
   383         path = util.url(path).path
   377     for p, u in ui.configitems("paths"):
   384     for p, u in ui.configitems("paths"):
   409             explicit.discard(b)
   416             explicit.discard(b)
   410             changed.append((b, bin(scid), status,
   417             changed.append((b, bin(scid), status,
   411                             _("importing bookmark %s\n") % (b)))
   418                             _("importing bookmark %s\n") % (b)))
   412         else:
   419         else:
   413             db = _diverge(ui, b, path, localmarks)
   420             db = _diverge(ui, b, path, localmarks)
   414             changed.append((db, bin(scid), warn,
   421             if db:
   415                             _("divergent bookmark %s stored as %s\n")
   422                 changed.append((db, bin(scid), warn,
   416                             % (b, db)))
   423                                 _("divergent bookmark %s stored as %s\n") %
       
   424                                 (b, db)))
       
   425             else:
       
   426                 warn(_("warning: failed to assign numbered name "
       
   427                        "to divergent bookmark %s\n") % (b))
   417     for b, scid, dcid in adddst + advdst:
   428     for b, scid, dcid in adddst + advdst:
   418         if b in explicit:
   429         if b in explicit:
   419             explicit.discard(b)
   430             explicit.discard(b)
   420             changed.append((b, bin(scid), status,
   431             changed.append((b, bin(scid), status,
   421                             _("importing bookmark %s\n") % (b)))
   432                             _("importing bookmark %s\n") % (b)))