Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 30517:a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
And a lot of imports with it.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 17 Aug 2016 20:56:11 -0700 |
parents | ef1353c283e3 |
children | a8b17859684a |
comparison
equal
deleted
inserted
replaced
30516:ef1353c283e3 | 30517:a3ec6db36315 |
---|---|
9 | 9 |
10 import difflib | 10 import difflib |
11 import errno | 11 import errno |
12 import operator | 12 import operator |
13 import os | 13 import os |
14 import random | |
15 import re | 14 import re |
16 import shlex | 15 import shlex |
17 import socket | 16 import socket |
18 import string | 17 import string |
19 import sys | 18 import sys |
34 bookmarks, | 33 bookmarks, |
35 bundle2, | 34 bundle2, |
36 changegroup, | 35 changegroup, |
37 cmdutil, | 36 cmdutil, |
38 copies, | 37 copies, |
39 dagutil, | |
40 destutil, | 38 destutil, |
41 dirstateguard, | 39 dirstateguard, |
42 discovery, | 40 discovery, |
43 encoding, | 41 encoding, |
44 error, | 42 error, |
48 formatter, | 46 formatter, |
49 graphmod, | 47 graphmod, |
50 hbisect, | 48 hbisect, |
51 help, | 49 help, |
52 hg, | 50 hg, |
53 localrepo, | |
54 lock as lockmod, | 51 lock as lockmod, |
55 merge as mergemod, | 52 merge as mergemod, |
56 minirst, | 53 minirst, |
57 obsolete, | 54 obsolete, |
58 patch, | 55 patch, |
63 repair, | 60 repair, |
64 revlog, | 61 revlog, |
65 revset, | 62 revset, |
66 scmutil, | 63 scmutil, |
67 server, | 64 server, |
68 setdiscovery, | |
69 sshserver, | 65 sshserver, |
70 sslutil, | 66 sslutil, |
71 streamclone, | 67 streamclone, |
72 templatekw, | 68 templatekw, |
73 templater, | 69 templater, |
74 treediscovery, | |
75 ui as uimod, | 70 ui as uimod, |
76 util, | 71 util, |
77 ) | 72 ) |
78 | 73 |
79 release = lockmod.release | 74 release = lockmod.release |
1863 Returns 0 on success, 1 if errors are encountered. | 1858 Returns 0 on success, 1 if errors are encountered. |
1864 """ | 1859 """ |
1865 with repo.wlock(False): | 1860 with repo.wlock(False): |
1866 return cmdutil.copy(ui, repo, pats, opts) | 1861 return cmdutil.copy(ui, repo, pats, opts) |
1867 | 1862 |
1868 @command('debugdiscovery', | |
1869 [('', 'old', None, _('use old-style discovery')), | |
1870 ('', 'nonheads', None, | |
1871 _('use old-style discovery with non-heads included')), | |
1872 ] + remoteopts, | |
1873 _('[-l REV] [-r REV] [-b BRANCH]... [OTHER]')) | |
1874 def debugdiscovery(ui, repo, remoteurl="default", **opts): | |
1875 """runs the changeset discovery protocol in isolation""" | |
1876 remoteurl, branches = hg.parseurl(ui.expandpath(remoteurl), | |
1877 opts.get('branch')) | |
1878 remote = hg.peer(repo, opts, remoteurl) | |
1879 ui.status(_('comparing with %s\n') % util.hidepassword(remoteurl)) | |
1880 | |
1881 # make sure tests are repeatable | |
1882 random.seed(12323) | |
1883 | |
1884 def doit(localheads, remoteheads, remote=remote): | |
1885 if opts.get('old'): | |
1886 if localheads: | |
1887 raise error.Abort('cannot use localheads with old style ' | |
1888 'discovery') | |
1889 if not util.safehasattr(remote, 'branches'): | |
1890 # enable in-client legacy support | |
1891 remote = localrepo.locallegacypeer(remote.local()) | |
1892 common, _in, hds = treediscovery.findcommonincoming(repo, remote, | |
1893 force=True) | |
1894 common = set(common) | |
1895 if not opts.get('nonheads'): | |
1896 ui.write(("unpruned common: %s\n") % | |
1897 " ".join(sorted(short(n) for n in common))) | |
1898 dag = dagutil.revlogdag(repo.changelog) | |
1899 all = dag.ancestorset(dag.internalizeall(common)) | |
1900 common = dag.externalizeall(dag.headsetofconnecteds(all)) | |
1901 else: | |
1902 common, any, hds = setdiscovery.findcommonheads(ui, repo, remote) | |
1903 common = set(common) | |
1904 rheads = set(hds) | |
1905 lheads = set(repo.heads()) | |
1906 ui.write(("common heads: %s\n") % | |
1907 " ".join(sorted(short(n) for n in common))) | |
1908 if lheads <= common: | |
1909 ui.write(("local is subset\n")) | |
1910 elif rheads <= common: | |
1911 ui.write(("remote is subset\n")) | |
1912 | |
1913 serverlogs = opts.get('serverlog') | |
1914 if serverlogs: | |
1915 for filename in serverlogs: | |
1916 with open(filename, 'r') as logfile: | |
1917 line = logfile.readline() | |
1918 while line: | |
1919 parts = line.strip().split(';') | |
1920 op = parts[1] | |
1921 if op == 'cg': | |
1922 pass | |
1923 elif op == 'cgss': | |
1924 doit(parts[2].split(' '), parts[3].split(' ')) | |
1925 elif op == 'unb': | |
1926 doit(parts[3].split(' '), parts[2].split(' ')) | |
1927 line = logfile.readline() | |
1928 else: | |
1929 remoterevs, _checkout = hg.addbranchrevs(repo, remote, branches, | |
1930 opts.get('remote_head')) | |
1931 localrevs = opts.get('local_head') | |
1932 doit(localrevs, remoterevs) | |
1933 | |
1934 @command('debugextensions', formatteropts, [], norepo=True) | 1863 @command('debugextensions', formatteropts, [], norepo=True) |
1935 def debugextensions(ui, **opts): | 1864 def debugextensions(ui, **opts): |
1936 '''show information about active extensions''' | 1865 '''show information about active extensions''' |
1937 exts = extensions.extensions(ui) | 1866 exts = extensions.extensions(ui) |
1938 hgver = util.version() | 1867 hgver = util.version() |