debug: add a debugcapabilities commands
This new debugcommand prints the capabilities of any remote in a human friendly
way. Improved bundle2 capabilities support will be introduced in the next
changesets.
--- a/mercurial/debugcommands.py Mon Oct 30 17:46:07 2017 -0400
+++ b/mercurial/debugcommands.py Mon Oct 30 17:08:16 2017 +0100
@@ -360,6 +360,16 @@
return _debugbundle2(ui, gen, all=all, **opts)
_debugchangegroup(ui, gen, all=all, **opts)
+@command('debugcapabilities',
+ [], _('PATH'),
+ norepo=True)
+def debugcapabilities(ui, path, **opts):
+ """lists the capabilities of a remote peer"""
+ peer = hg.peer(ui, opts, path)
+ caps = peer.capabilities()
+ ui.write(('Main capabilities:\n'))
+ for c in sorted(caps):
+ ui.write((' %s\n') % c)
@command('debugcheckstate', [], '')
def debugcheckstate(ui, repo):
"""validate the correctness of the current dirstate"""
--- a/tests/test-completion.t Mon Oct 30 17:46:07 2017 -0400
+++ b/tests/test-completion.t Mon Oct 30 17:08:16 2017 +0100
@@ -72,6 +72,7 @@
debugapplystreamclonebundle
debugbuilddag
debugbundle
+ debugcapabilities
debugcheckstate
debugcolor
debugcommands
@@ -249,6 +250,7 @@
debugapplystreamclonebundle:
debugbuilddag: mergeable-file, overwritten-file, new-file
debugbundle: all, part-type, spec
+ debugcapabilities:
debugcheckstate:
debugcolor: style
debugcommands:
--- a/tests/test-debugcommands.t Mon Oct 30 17:46:07 2017 -0400
+++ b/tests/test-debugcommands.t Mon Oct 30 17:08:16 2017 +0100
@@ -156,3 +156,15 @@
from h hidden in g at:
debugstacktrace.py:6 in f
debugstacktrace.py:9 in g
+
+Test debugcapabilities command:
+
+ $ hg debugcapabilities ./debugrevlog/
+ Main capabilities:
+ branchmap
+ bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Aphases%3Dheads%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps
+ getbundle
+ known
+ lookup
+ pushkey
+ unbundle
--- a/tests/test-help.t Mon Oct 30 17:46:07 2017 -0400
+++ b/tests/test-help.t Mon Oct 30 17:08:16 2017 +0100
@@ -895,6 +895,8 @@
builds a repo with a given DAG from scratch in the current
empty repo
debugbundle lists the contents of a bundle
+ debugcapabilities
+ lists the capabilities of a remote peer
debugcheckstate
validate the correctness of the current dirstate
debugcolor show available color, effects or style