# HG changeset patch # User Nils Adermann # Date 1299950114 -3600 # Node ID 7e6c2f58ad56191a004d65318d5799f1109e8b5c # Parent 537899158396e1adb6aefb8773b795fb66ecf9a4 identify: list bookmarks for remote repositories diff -r 537899158396 -r 7e6c2f58ad56 mercurial/commands.py --- a/mercurial/commands.py Mon Mar 14 12:42:05 2011 -0400 +++ b/mercurial/commands.py Sat Mar 12 18:15:14 2011 +0100 @@ -2292,6 +2292,7 @@ output = [] revs = [] + bms = [] if source: source, branches = hg.parseurl(ui.expandpath(source)) repo = hg.repository(ui, source) @@ -2302,10 +2303,19 @@ rev = revs[0] if not rev: rev = "tip" - if num or branch or tags or bookmarks: - raise util.Abort(_("can't query remote revision number," - " branch, tags, or bookmarks")) - output = [hexfunc(repo.lookup(rev))] + if num or branch or tags: + raise util.Abort( + _("can't query remote revision number, branch, or tags")) + + remoterev = repo.lookup(rev) + if default or id: + output = [hexfunc(remoterev)] + + if 'bookmarks' in repo.listkeys('namespaces'): + hexremoterev = hex(remoterev) + bms = [bm for bm, bmrev in repo.listkeys('bookmarks').iteritems() + if bmrev == hexremoterev] + elif not rev: ctx = repo[None] parents = ctx.parents() @@ -2325,6 +2335,9 @@ if num: output.append(str(ctx.rev())) + if repo.local(): + bms = ctx.bookmarks() + if repo.local() and default and not ui.quiet: b = ctx.branch() if b != 'default': @@ -2335,8 +2348,9 @@ if t: output.append(t) + if default and not ui.quiet: # multiple bookmarks for a single parent separated by '/' - bm = '/'.join(ctx.bookmarks()) + bm = '/'.join(bms) if bm: output.append(bm) @@ -2347,7 +2361,7 @@ output.extend(ctx.tags()) if bookmarks: - output.extend(ctx.bookmarks()) + output.extend(bms) ui.write("%s\n" % ' '.join(output)) diff -r 537899158396 -r 7e6c2f58ad56 tests/test-identify.t --- a/tests/test-identify.t Mon Mar 14 12:42:05 2011 -0400 +++ b/tests/test-identify.t Sat Mar 12 18:15:14 2011 +0100 @@ -65,25 +65,19 @@ remote with rev number? $ hg id -n http://localhost:$HGPORT1/ - abort: can't query remote revision number, branch, tags, or bookmarks + abort: can't query remote revision number, branch, or tags [255] remote with tags? $ hg id -t http://localhost:$HGPORT1/ - abort: can't query remote revision number, branch, tags, or bookmarks + abort: can't query remote revision number, branch, or tags [255] remote with branch? $ hg id -b http://localhost:$HGPORT1/ - abort: can't query remote revision number, branch, tags, or bookmarks - [255] - -remote with bookmarks? - - $ hg id -B http://localhost:$HGPORT1/ - abort: can't query remote revision number, branch, tags, or bookmarks + abort: can't query remote revision number, branch, or tags [255] Make sure we do not obscure unknown requires file entries (issue2649)