--- 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))
--- 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)