hgext/mq.py
changeset 9439 f2acc0c00bec
parent 9365 b8dc3eba4f9d
child 9440 cd67bfcfabbe
--- a/hgext/mq.py	Wed Aug 19 12:51:07 2009 +0200
+++ b/hgext/mq.py	Mon Sep 14 16:39:24 2009 -0500
@@ -1866,6 +1866,39 @@
     repo.mq.qseries(repo, missing=opts['missing'], summary=opts['summary'])
     return 0
 
+def top(ui, repo, **opts):
+    """print the name of the current patch"""
+    q = repo.mq
+    t = q.applied and q.series_end(True) or 0
+    if t:
+        return q.qseries(repo, start=t-1, length=1, status='A',
+                         summary=opts.get('summary'))
+    else:
+        ui.write(_("no patches applied\n"))
+        return 1
+
+def next(ui, repo, **opts):
+    """print the name of the next patch"""
+    q = repo.mq
+    end = q.series_end()
+    if end == len(q.series):
+        ui.write(_("all patches applied\n"))
+        return 1
+    return q.qseries(repo, start=end, length=1, summary=opts.get('summary'))
+
+def prev(ui, repo, **opts):
+    """print the name of the previous patch"""
+    q = repo.mq
+    l = len(q.applied)
+    if l == 1:
+        ui.write(_("only one patch applied\n"))
+        return 1
+    if not l:
+        ui.write(_("no patches applied\n"))
+        return 1
+    return q.qseries(repo, start=l-2, length=1, status='A',
+                     summary=opts.get('summary'))
+
 def setupheaderopts(ui, opts):
     def do(opt, val):
         if not opts[opt] and opts['current' + opt]:
@@ -2580,6 +2613,8 @@
           ('d', 'date', '', _('add "Date: <given date>" to patch'))
           ] + commands.walkopts + commands.commitopts,
          _('hg qnew [-e] [-m TEXT] [-l FILE] [-f] PATCH [FILE]...')),
+    "qnext": (next, [] + seriesopts, _('hg qnext [-s]')),
+    "qprev": (prev, [] + seriesopts, _('hg qprev [-s]')),
     "^qpop":
         (pop,
          [('a', 'all', None, _('pop all patches')),
@@ -2637,6 +2672,7 @@
           ('b', 'backup', None, _('bundle unrelated changesets')),
           ('n', 'nobackup', None, _('no backups'))],
          _('hg strip [-f] [-b] [-n] REV')),
+    "qtop": (top, [] + seriesopts, _('hg qtop [-s]')),
     "qunapplied":
         (unapplied,
          [('1', 'first', None, _('show only the first patch'))] + seriesopts,