# HG changeset patch # User Steve Losh # Date 1248335496 14400 # Node ID bf985aeca78e7f46a8730e6f626802b2400b772b # Parent a2b02ec1f2af6be9b1b6671f78921b23863f31e9 Add the {node} keyword. diff -r a2b02ec1f2af -r bf985aeca78e prompt.py --- a/prompt.py Thu Jul 23 03:26:31 2009 -0400 +++ b/prompt.py Thu Jul 23 03:51:36 2009 -0400 @@ -16,6 +16,7 @@ from datetime import datetime, timedelta from os import path from mercurial import extensions +from mercurial.node import hex, short CACHE_PATH = ".hg/prompt/cache" CACHE_TIMEOUT = timedelta(minutes=15) @@ -147,6 +148,19 @@ rev = parents[p].rev() if p is not None else None return _with_groups(out_g, str(rev)) if rev else '' + def _node(m): + g = m.groups() + out_g = (g[0],) + (g[-1],) + + parents = repo[None].parents() + p = 0 if '|merge' not in g else 1 + p = p if len(parents) > p else None + + format = short if '|short' in g else hex + + node = format(parents[p].node()) if p is not None else None + return _with_groups(out_g, str(node)) if node else '' + def _remote(kind): def _r(m): g = m.groups() @@ -182,6 +196,7 @@ patterns = { 'bookmark': _bookmark, 'branch': _branch, + 'node(?:(\|short)|(\|merge))*': _node, 'rev(\|merge)?': _rev, 'root': _root, 'root\|basename': _basename,