hgext/evolution.py
changeset 87 246b8fefd0a5
parent 82 8108d566a8b5
child 88 64fe5a4f877e
equal deleted inserted replaced
86:7f763bada042 87:246b8fefd0a5
    30 ### extension check
    30 ### extension check
    31 #############################
    31 #############################
    32 
    32 
    33 def extsetup(ui):
    33 def extsetup(ui):
    34     try:
    34     try:
    35         rebase = extensions.find('obsolete')
    35         obsolete = extensions.find('obsolete')
    36     except KeyError:
    36     except KeyError:
    37         raise error.Abort(_('evolution extension require obsolete extension.'))
    37         raise error.Abort(_('evolution extension require obsolete extension.'))
       
    38     try:
       
    39         rebase = extensions.find('rebase')
       
    40     except KeyError:
       
    41         raise error.Abort(_('evolution extension require rebase extension.'))
    38 
    42 
    39 ### changeset rewriting logic
    43 ### changeset rewriting logic
    40 #############################
    44 #############################
    41 
    45 
    42 def rewrite(repo, old, updates, head, newbases, commitopts):
    46 def rewrite(repo, old, updates, head, newbases, commitopts):
   107 ### new command
   111 ### new command
   108 #############################
   112 #############################
   109 cmdtable = {}
   113 cmdtable = {}
   110 command = cmdutil.command(cmdtable)
   114 command = cmdutil.command(cmdtable)
   111 
   115 
       
   116 @command('^evolve',
       
   117     [],
       
   118     '')
       
   119 def evolve(ui, repo):
       
   120     """suggest the next evolution step"""
       
   121     obsolete = extensions.find('obsolete')
       
   122     next = min(obsolete.unstables(repo))
       
   123     obs = repo[next].parents()[0]
       
   124     if not obs.obsolete():
       
   125         obs = next.parents()[1]
       
   126     assert obs.obsolete()
       
   127     newer = obsolete.newerversion(repo, obs.node())
       
   128     target = newer[-1]
       
   129     repo.ui.status('hg rebase --dest %s --source %s --detach \n' % (repo[target].rev(), next))
       
   130 
       
   131 
       
   132 
   112 @command('^kill',
   133 @command('^kill',
   113     [],
   134     [],
   114     '<revs>')
   135     '<revs>')
   115 def kill(ui, repo, *revs):
   136 def kill(ui, repo, *revs):
   116     """mark a changeset as obsolete
   137     """mark a changeset as obsolete