# HG changeset patch # User Kevin Bullock # Date 1254636425 18000 # Node ID 859cab1100e5328f2d48188ff4aeb229046bb2e1 # Parent 8e444c0f0dd9931eb23cd105de30b12aa3508d24 add mq support diff -r 8e444c0f0dd9 -r 859cab1100e5 prompt.py --- a/prompt.py Wed Sep 30 17:06:12 2009 -0400 +++ b/prompt.py Sun Oct 04 01:07:05 2009 -0500 @@ -73,6 +73,10 @@ with if you're currently merging, otherwise nothing. - node|merge|short: a short form of the changeset hash of the changeset you're merging with if you're currently merging, otherwise nothing + - patch: the topmost currently-applied patch (requires the mq extension) + - patch|count: the number of patches in the queue + - patch|applied: the number of currently applied patches + - patch|unapplied: the number of unapplied patches in the queue - rev: the repository-local changeset number of the current parent - rev|merge: the repository-local changeset number of the changeset you're merging with if you're currently merging, otherwise nothing @@ -162,6 +166,30 @@ except KeyError: return '' + def _patch(m): + g = m.groups() + out_g = (g[0],) + (g[-1],) + + try: + extensions.find('mq') + except KeyError: + return '' + + q = repo.mq + out = '' + if '|applied' in g: + out = str(len(q.applied)) + elif '|unapplied' in g: + out = str(len(q.unapplied(repo))) + elif '|count' in g: + out = str(len(q.series)) + else: + applied = q.applied + if applied: + out = applied[-1].name + + return _with_groups(out_g, out) if out else '' + def _root(m): return _with_groups(m.groups(), repo.root) if repo.root else '' @@ -233,6 +261,7 @@ 'bookmark': _bookmark, 'branch': _branch, 'node(?:(\|short)|(\|merge))*': _node, + 'patch(?:(\|applied)|(\|unapplied)|(\|count))?': _patch, 'rev(\|merge)?': _rev, 'root': _root, 'root\|basename': _basename,