debugcommands: move 'debugdiscovery' in the module
And a lot of imports with it.
--- a/mercurial/commands.py Wed Aug 17 20:43:31 2016 -0700
+++ b/mercurial/commands.py Wed Aug 17 20:56:11 2016 -0700
@@ -11,7 +11,6 @@
import errno
import operator
import os
-import random
import re
import shlex
import socket
@@ -36,7 +35,6 @@
changegroup,
cmdutil,
copies,
- dagutil,
destutil,
dirstateguard,
discovery,
@@ -50,7 +48,6 @@
hbisect,
help,
hg,
- localrepo,
lock as lockmod,
merge as mergemod,
minirst,
@@ -65,13 +62,11 @@
revset,
scmutil,
server,
- setdiscovery,
sshserver,
sslutil,
streamclone,
templatekw,
templater,
- treediscovery,
ui as uimod,
util,
)
@@ -1865,72 +1860,6 @@
with repo.wlock(False):
return cmdutil.copy(ui, repo, pats, opts)
-@command('debugdiscovery',
- [('', 'old', None, _('use old-style discovery')),
- ('', 'nonheads', None,
- _('use old-style discovery with non-heads included')),
- ] + remoteopts,
- _('[-l REV] [-r REV] [-b BRANCH]... [OTHER]'))
-def debugdiscovery(ui, repo, remoteurl="default", **opts):
- """runs the changeset discovery protocol in isolation"""
- remoteurl, branches = hg.parseurl(ui.expandpath(remoteurl),
- opts.get('branch'))
- remote = hg.peer(repo, opts, remoteurl)
- ui.status(_('comparing with %s\n') % util.hidepassword(remoteurl))
-
- # make sure tests are repeatable
- random.seed(12323)
-
- def doit(localheads, remoteheads, remote=remote):
- if opts.get('old'):
- if localheads:
- raise error.Abort('cannot use localheads with old style '
- 'discovery')
- if not util.safehasattr(remote, 'branches'):
- # enable in-client legacy support
- remote = localrepo.locallegacypeer(remote.local())
- common, _in, hds = treediscovery.findcommonincoming(repo, remote,
- force=True)
- common = set(common)
- if not opts.get('nonheads'):
- ui.write(("unpruned common: %s\n") %
- " ".join(sorted(short(n) for n in common)))
- dag = dagutil.revlogdag(repo.changelog)
- all = dag.ancestorset(dag.internalizeall(common))
- common = dag.externalizeall(dag.headsetofconnecteds(all))
- else:
- common, any, hds = setdiscovery.findcommonheads(ui, repo, remote)
- common = set(common)
- rheads = set(hds)
- lheads = set(repo.heads())
- ui.write(("common heads: %s\n") %
- " ".join(sorted(short(n) for n in common)))
- if lheads <= common:
- ui.write(("local is subset\n"))
- elif rheads <= common:
- ui.write(("remote is subset\n"))
-
- serverlogs = opts.get('serverlog')
- if serverlogs:
- for filename in serverlogs:
- with open(filename, 'r') as logfile:
- line = logfile.readline()
- while line:
- parts = line.strip().split(';')
- op = parts[1]
- if op == 'cg':
- pass
- elif op == 'cgss':
- doit(parts[2].split(' '), parts[3].split(' '))
- elif op == 'unb':
- doit(parts[3].split(' '), parts[2].split(' '))
- line = logfile.readline()
- else:
- remoterevs, _checkout = hg.addbranchrevs(repo, remote, branches,
- opts.get('remote_head'))
- localrevs = opts.get('local_head')
- doit(localrevs, remoterevs)
-
@command('debugextensions', formatteropts, [], norepo=True)
def debugextensions(ui, **opts):
'''show information about active extensions'''
--- a/mercurial/debugcommands.py Wed Aug 17 20:43:31 2016 -0700
+++ b/mercurial/debugcommands.py Wed Aug 17 20:56:11 2016 -0700
@@ -8,10 +8,12 @@
from __future__ import absolute_import
import os
+import random
from .i18n import _
from .node import (
hex,
+ short,
)
from . import (
bundle2,
@@ -20,14 +22,18 @@
commands,
context,
dagparser,
+ dagutil,
error,
exchange,
hg,
+ localrepo,
lock as lockmod,
revlog,
scmutil,
+ setdiscovery,
simplemerge,
streamclone,
+ treediscovery,
util,
)
@@ -451,3 +457,69 @@
if range:
m = util.matchdate(range)
ui.write(("match: %s\n") % m(d[0]))
+
+@command('debugdiscovery',
+ [('', 'old', None, _('use old-style discovery')),
+ ('', 'nonheads', None,
+ _('use old-style discovery with non-heads included')),
+ ] + commands.remoteopts,
+ _('[-l REV] [-r REV] [-b BRANCH]... [OTHER]'))
+def debugdiscovery(ui, repo, remoteurl="default", **opts):
+ """runs the changeset discovery protocol in isolation"""
+ remoteurl, branches = hg.parseurl(ui.expandpath(remoteurl),
+ opts.get('branch'))
+ remote = hg.peer(repo, opts, remoteurl)
+ ui.status(_('comparing with %s\n') % util.hidepassword(remoteurl))
+
+ # make sure tests are repeatable
+ random.seed(12323)
+
+ def doit(localheads, remoteheads, remote=remote):
+ if opts.get('old'):
+ if localheads:
+ raise error.Abort('cannot use localheads with old style '
+ 'discovery')
+ if not util.safehasattr(remote, 'branches'):
+ # enable in-client legacy support
+ remote = localrepo.locallegacypeer(remote.local())
+ common, _in, hds = treediscovery.findcommonincoming(repo, remote,
+ force=True)
+ common = set(common)
+ if not opts.get('nonheads'):
+ ui.write(("unpruned common: %s\n") %
+ " ".join(sorted(short(n) for n in common)))
+ dag = dagutil.revlogdag(repo.changelog)
+ all = dag.ancestorset(dag.internalizeall(common))
+ common = dag.externalizeall(dag.headsetofconnecteds(all))
+ else:
+ common, any, hds = setdiscovery.findcommonheads(ui, repo, remote)
+ common = set(common)
+ rheads = set(hds)
+ lheads = set(repo.heads())
+ ui.write(("common heads: %s\n") %
+ " ".join(sorted(short(n) for n in common)))
+ if lheads <= common:
+ ui.write(("local is subset\n"))
+ elif rheads <= common:
+ ui.write(("remote is subset\n"))
+
+ serverlogs = opts.get('serverlog')
+ if serverlogs:
+ for filename in serverlogs:
+ with open(filename, 'r') as logfile:
+ line = logfile.readline()
+ while line:
+ parts = line.strip().split(';')
+ op = parts[1]
+ if op == 'cg':
+ pass
+ elif op == 'cgss':
+ doit(parts[2].split(' '), parts[3].split(' '))
+ elif op == 'unb':
+ doit(parts[3].split(' '), parts[2].split(' '))
+ line = logfile.readline()
+ else:
+ remoterevs, _checkout = hg.addbranchrevs(repo, remote, branches,
+ opts.get('remote_head'))
+ localrevs = opts.get('local_head')
+ doit(localrevs, remoterevs)