hgext/qsync.py
changeset 630 722b52c75f02
parent 608 af29fbbefe7a
equal deleted inserted replaced
624:ce46d1624d4a 630:722b52c75f02
    14 from mercurial import hg
    14 from mercurial import hg
    15 from mercurial import scmutil
    15 from mercurial import scmutil
    16 from mercurial import error
    16 from mercurial import error
    17 from mercurial import extensions
    17 from mercurial import extensions
    18 from mercurial import phases
    18 from mercurial import phases
       
    19 from mercurial import obsolete
    19 
    20 
    20 ### old compat code
    21 ### old compat code
    21 #############################
    22 #############################
    22 
    23 
    23 BRANCHNAME="qsubmit2"
    24 BRANCHNAME="qsubmit2"
    83                 try:
    84                 try:
    84                     store.getfile(patch_name)
    85                     store.getfile(patch_name)
    85                     review_list.append(patch_name)
    86                     review_list.append(patch_name)
    86                 except IOError:
    87                 except IOError:
    87                     oldnode = oldfiles[patch_name]
    88                     oldnode = oldfiles[patch_name]
    88                     evolve = extensions.find('evolve')
    89                     newnodes = obsolete.successorssets(repo, oldnode)
    89                     newnodes = evolve.successorssets(repo, oldnode)
       
    90                     if newnodes:
    90                     if newnodes:
    91                         newnodes = [n for n in newnodes if n and n[0] in repo] # remove killing
    91                         newnodes = [n for n in newnodes if n and n[0] in repo] # remove killing
    92                     if not newnodes:
    92                     if not newnodes:
    93                         # changeset has been killed (eg. reject)
    93                         # changeset has been killed (eg. reject)
    94                         pass
    94                         pass
   175         if oldhex in usedold:
   175         if oldhex in usedold:
   176             continue # no duplicate
   176             continue # no duplicate
   177         usedold.add(oldhex)
   177         usedold.add(oldhex)
   178         oldname = str(oldname)
   178         oldname = str(oldname)
   179         oldnode = bin(oldhex)
   179         oldnode = bin(oldhex)
   180         newnodes = evolve.successorssets(repo, oldnode)
   180         newnodes = obsolete.successorssets(repo, oldnode)
   181         if newnodes:
   181         if newnodes:
   182             newnodes = [n for n in newnodes if n and n[0] in repo] # remove killing
   182             newnodes = [n for n in newnodes if n and n[0] in repo] # remove killing
   183             if len(newnodes) > 1:
   183             if len(newnodes) > 1:
   184                 newnodes = [short(nodes[0]) for nodes in newnodes]
   184                 newnodes = [short(nodes[0]) for nodes in newnodes]
   185                 raise util.Abort('%s have more than one newer version: %s'% (oldname, newnodes))
   185                 raise util.Abort('%s have more than one newer version: %s'% (oldname, newnodes))