--- 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":