hgext/evolve.py
branchstable
changeset 358 ce5ea6f6a700
parent 356 56d4c6207ef9
child 362 88cee22c89f1
equal deleted inserted replaced
357:b398e9c2dbd1 358:ce5ea6f6a700
    30 
    30 
    31 def noderange(repo, revsets):
    31 def noderange(repo, revsets):
    32     """The same as revrange but return node"""
    32     """The same as revrange but return node"""
    33     return map(repo.changelog.node,
    33     return map(repo.changelog.node,
    34                scmutil.revrange(repo, revsets))
    34                scmutil.revrange(repo, revsets))
    35 
       
    36 def warnobserrors(orig, ui, repo, *args, **kwargs):
       
    37     """display warning is the command resulted in more instable changeset"""
       
    38     priorunstables = len(repo.revs('unstable()'))
       
    39     priorlatecomers = len(repo.revs('latecomer()'))
       
    40     #print orig, priorunstables
       
    41     #print len(repo.revs('secret() - obsolete()'))
       
    42     try:
       
    43         return orig(ui, repo, *args, **kwargs)
       
    44     finally:
       
    45         newunstables = len(repo.revs('unstable()')) - priorunstables
       
    46         newlatecomers = len(repo.revs('latecomer()')) - priorlatecomers
       
    47         #print orig, newunstables
       
    48         #print len(repo.revs('secret() - obsolete()'))
       
    49         if newunstables > 0:
       
    50             ui.warn(_('%i new unstables changesets\n') % newunstables)
       
    51         if newlatecomers > 0:
       
    52             ui.warn(_('%i new latecomers changesets\n') % newlatecomers)
       
    53 
    35 
    54 ### changeset rewriting logic
    36 ### changeset rewriting logic
    55 #############################
    37 #############################
    56 
    38 
    57 def rewrite(repo, old, updates, head, newbases, commitopts):
    39 def rewrite(repo, old, updates, head, newbases, commitopts):
   675         rebase = extensions.find('rebase')
   657         rebase = extensions.find('rebase')
   676     except KeyError:
   658     except KeyError:
   677         rebase = None
   659         rebase = None
   678         raise error.Abort(_('evolution extension require rebase extension.'))
   660         raise error.Abort(_('evolution extension require rebase extension.'))
   679 
   661 
       
   662     for cmd in ['amend', 'kill', 'uncommit']:
       
   663         entry = extensions.wrapcommand(cmdtable, cmd,
       
   664                                        obsolete.warnobserrors)
       
   665 
   680     entry = extensions.wrapcommand(commands.table, 'commit', commitwrapper)
   666     entry = extensions.wrapcommand(commands.table, 'commit', commitwrapper)
   681     entry[1].append(('o', 'obsolete', [],
   667     entry[1].append(('o', 'obsolete', [],
   682                      _("make commit obsolete this revision")))
   668                      _("make commit obsolete this revision")))
   683     entry = extensions.wrapcommand(commands.table, 'graft', graftwrapper)
   669     entry = extensions.wrapcommand(commands.table, 'graft', graftwrapper)
   684     entry[1].append(('o', 'obsolete', [],
   670     entry[1].append(('o', 'obsolete', [],
   685                      _("make graft obsoletes this revision")))
   671                      _("make graft obsoletes this revision")))
   686     entry[1].append(('O', 'old-obsolete', False,
   672     entry[1].append(('O', 'old-obsolete', False,
   687                      _("make graft obsoletes its source")))
   673                      _("make graft obsoletes its source")))
   688 
   674 
   689     # warning about more obsolete
       
   690     for cmd in ['commit', 'push', 'pull', 'graft', 'phase', 'unbundle']:
       
   691         entry = extensions.wrapcommand(commands.table, cmd, warnobserrors)
       
   692     for cmd in ['amend', 'kill', 'uncommit']:
       
   693         entry = extensions.wrapcommand(cmdtable, cmd, warnobserrors)
       
   694 
       
   695     if rebase is not None:
       
   696         entry = extensions.wrapcommand(rebase.cmdtable, 'rebase', warnobserrors)