# HG changeset patch # User Alexander Solovyov # Date 1228565010 -7200 # Node ID 187a13bd14c6293c13c9e1207de8ef5bec53b161 # Parent 42cb14f20d7696f7fc4f8b5e013a991d880e79a5 bookmarks: add --only-bookmark option to log diff -r 42cb14f20d76 -r 187a13bd14c6 hgext/bookmarks.py --- a/hgext/bookmarks.py Sat Dec 06 16:15:59 2008 +0100 +++ b/hgext/bookmarks.py Sat Dec 06 14:03:30 2008 +0200 @@ -312,12 +312,27 @@ setcurrent(repo, rev) return res +def bookmarkonlylog(orig, ui, repo, *args, **opts): + 'Show revisions that are ancestors of given bookmark' + if opts.get('only_bookmark'): + if opts.get('rev'): + raise util.Abort(_("you cannot use --rev and --only-bookmark" + " options simultaneously")) + mark = opts['only_bookmark'] + if not mark in parse(repo): + raise util.Abort(_("invalid bookmark name")) + opts['rev'] = ['%s:null' % mark] + orig(ui, repo, *args, **opts) + def uisetup(ui): 'Replace push with a decorator to provide --non-bookmarked option' entry = extensions.wrapcommand(commands.table, 'push', pushnonbookmarked) entry[1].append(('', 'non-bookmarked', None, _("push all heads that are not bookmarked"))) if ui.configbool('bookmarks', 'track.current'): extensions.wrapcommand(commands.table, 'update', updatecurbookmark) + entry = extensions.wrapcommand(commands.table, 'log', bookmarkonlylog) + entry[1].append(('B', 'only-bookmark', '', + _("show only ancestors of given bookmark"))) cmdtable = { "bookmarks":