Mercurial > public > mercurial-scm > hg-stable
annotate mercurial/debugcommands.py @ 46535:4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Generating new repository using strip of local clone is very expensive for large
repositories. And such large repository are the most likely to requires
debugging around discovery. So we add a simple way to run discovery using
provided sets of heads.
Differential Revision: https://phab.mercurial-scm.org/D9945
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 29 Jan 2021 15:23:07 +0100 |
parents | 3e3b81b6e7da |
children | c2435280ca63 |
rev | line source |
---|---|
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
1 # debugcommands.py - command processing for debug* commands |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
2 # |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
3 # Copyright 2005-2016 Matt Mackall <mpm@selenic.com> |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
4 # |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
7 |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
8 from __future__ import absolute_import |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
9 |
34144
902219a99901
debuginstall: use codecs.lookup() to detect invalid encoding
Yuya Nishihara <yuya@tcha.org>
parents:
34135
diff
changeset
|
10 import codecs |
34043
626a28f30dbd
debugcommands: stabilize output of debugbundle by having a custom repr
Augie Fackler <raf@durin42.com>
parents:
33553
diff
changeset
|
11 import collections |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
12 import difflib |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
13 import errno |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
14 import glob |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
15 import operator |
30534
86ebd2f61c31
debugcommands: move 'debugfsinfo' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30533
diff
changeset
|
16 import os |
44230
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
17 import platform |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
18 import random |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
19 import re |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
20 import socket |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
21 import ssl |
36789
ffa3026d4196
cleanup: use stat_result[stat.ST_MTIME] instead of stat_result.st_mtime
Augie Fackler <augie@google.com>
parents:
36786
diff
changeset
|
22 import stat |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
23 import string |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
24 import subprocess |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
25 import sys |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
26 import time |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
27 |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
28 from .i18n import _ |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
29 from .node import ( |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
30 bin, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
31 hex, |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
32 nullid, |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
33 nullrev, |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
34 short, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
35 ) |
43089
c59eb1560c44
py3: manually import getattr where it is needed
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43085
diff
changeset
|
36 from .pycompat import ( |
c59eb1560c44
py3: manually import getattr where it is needed
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43085
diff
changeset
|
37 getattr, |
c59eb1560c44
py3: manually import getattr where it is needed
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43085
diff
changeset
|
38 open, |
c59eb1560c44
py3: manually import getattr where it is needed
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43085
diff
changeset
|
39 ) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
40 from . import ( |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
41 bundle2, |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
42 bundlerepo, |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
43 changegroup, |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
44 cmdutil, |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
45 color, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
46 context, |
41529
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
47 copies, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
48 dagparser, |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
49 encoding, |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
50 error, |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
51 exchange, |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
52 extensions, |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
53 filemerge, |
38845
b9162ea1b815
fileset: extract language processing part to new module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
38842
diff
changeset
|
54 filesetlang, |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
55 formatter, |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
56 hg, |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
57 httppeer, |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
58 localrepo, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
59 lock as lockmod, |
35928
c8e2d6ed1f9e
cmdutil: drop aliases for logcmdutil functions (API)
Yuya Nishihara <yuya@tcha.org>
parents:
35730
diff
changeset
|
60 logcmdutil, |
44915
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
44662
diff
changeset
|
61 mergestate as mergestatemod, |
45665
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
62 metadata, |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
63 obsolete, |
33148
4f49810a1011
obsutil: move 'successorssets' to the new modules
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33119
diff
changeset
|
64 obsutil, |
43677
0b7733719d21
utils: move finddirs() to pathutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
43554
diff
changeset
|
65 pathutil, |
32765
23734c0e361f
debugcommands: issue warning when repo has secret changesets (issue5589)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32714
diff
changeset
|
66 phases, |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
67 policy, |
30967
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
68 pvec, |
30528
20a42325fdef
py3: use pycompat.getcwd() instead of os.getcwd()
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30527
diff
changeset
|
69 pycompat, |
32376
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
32355
diff
changeset
|
70 registrar, |
30775
513d68a90398
repair: implement requirements checking for upgrades
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30774
diff
changeset
|
71 repair, |
46535
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
72 repoview, |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
73 revlog, |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
74 revset, |
31044
0b8356705de6
revset: split language services to revsetlang module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
31008
diff
changeset
|
75 revsetlang, |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
76 scmutil, |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
77 setdiscovery, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
78 simplemerge, |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
79 sshpeer, |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
80 sslutil, |
30511
6da030496667
debugcommands: move debug{create,apply}streambundleclone to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30510
diff
changeset
|
81 streamclone, |
45880
d7a508a75d72
strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
45838
diff
changeset
|
82 strip, |
44336
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
83 tags as tagsmod, |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
84 templater, |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
85 treediscovery, |
31864
70d163b86316
upgrade: extract code in its own module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31694
diff
changeset
|
86 upgrade, |
35562
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
87 url as urlmod, |
30525
ef1353c283e3
debugcommands: move 'debugdate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30524
diff
changeset
|
88 util, |
31249
9cdba6072b97
vfs: use 'vfs' module directly in 'mercurial.debugcommand'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31226
diff
changeset
|
89 vfs as vfsmod, |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
90 wireprotoframing, |
36556
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
91 wireprotoserver, |
37720
d715a85003c8
wireprotov2: establish a type for representing command response
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37718
diff
changeset
|
92 wireprotov2peer, |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
93 ) |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
94 from .utils import ( |
39468
e5eb67dea6e8
debugcommands: use our CBOR decoder
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39405
diff
changeset
|
95 cborutil, |
42041
3e47d1ec9da5
util: extract compression code in `mercurial.utils.compression`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42035
diff
changeset
|
96 compression, |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
97 dateutil, |
37123
a8a902d7176e
procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37087
diff
changeset
|
98 procutil, |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
99 stringutil, |
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
100 ) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
101 |
44350
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
102 from .revlogutils import ( |
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
103 deltas as deltautil, |
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
104 nodemap, |
45665
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
105 sidedata, |
44350
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
106 ) |
39357
655b5b465953
revlog: split functionality related to deltas computation in a new module
Boris Feld <boris.feld@octobus.net>
parents:
39309
diff
changeset
|
107 |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
108 release = lockmod.release |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
109 |
45880
d7a508a75d72
strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
45838
diff
changeset
|
110 table = {} |
d7a508a75d72
strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
45838
diff
changeset
|
111 table.update(strip.command._table) |
d7a508a75d72
strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
45838
diff
changeset
|
112 command = registrar.command(table) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
113 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
114 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
115 @command(b'debugancestor', [], _(b'[INDEX] REV1 REV2'), optionalrepo=True) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
116 def debugancestor(ui, repo, *args): |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
117 """find the ancestor revision of two revisions in a given index""" |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
118 if len(args) == 3: |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
119 index, rev1, rev2 = args |
39823
24e493ec2229
py3: rename pycompat.getcwd() to encoding.getcwd() (API)
Matt Harbison <matt_harbison@yahoo.com>
parents:
39776
diff
changeset
|
120 r = revlog.revlog(vfsmod.vfs(encoding.getcwd(), audit=False), index) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
121 lookup = r.lookup |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
122 elif len(args) == 2: |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
123 if not repo: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
124 raise error.Abort( |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
125 _(b'there is no Mercurial repository here (.hg not found)') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
126 ) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
127 rev1, rev2 = args |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
128 r = repo.changelog |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
129 lookup = repo.lookup |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
130 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
131 raise error.Abort(_(b'either two or three arguments required')) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
132 a = r.ancestor(lookup(rev1), lookup(rev2)) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
133 ui.write(b'%d:%s\n' % (r.rev(a), hex(a))) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
134 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
135 |
45149
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
136 @command(b'debugantivirusrunning', []) |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
137 def debugantivirusrunning(ui, repo): |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
138 """attempt to trigger an antivirus scanner to see if one is active""" |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
139 with repo.cachevfs.open('eicar-test-file.com', b'wb') as f: |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
140 f.write( |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
141 util.b85decode( |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
142 # This is a base85-armored version of the EICAR test file. See |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
143 # https://en.wikipedia.org/wiki/EICAR_test_file for details. |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
144 b'ST#=}P$fV?P+K%yP+C|uG$>GBDK|qyDK~v2MM*<JQY}+dK~6+LQba95P' |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
145 b'E<)&Nm5l)EmTEQR4qnHOhq9iNGnJx' |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
146 ) |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
147 ) |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
148 # Give an AV engine time to scan the file. |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
149 time.sleep(2) |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
150 util.unlink(repo.cachevfs.join('eicar-test-file.com')) |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
151 |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
152 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
153 @command(b'debugapplystreamclonebundle', [], b'FILE') |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
154 def debugapplystreamclonebundle(ui, repo, fname): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
155 """apply a stream clone bundle file""" |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
156 f = hg.openpath(ui, fname) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
157 gen = exchange.readbundle(ui, f, fname) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
158 gen.apply(repo) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
159 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
160 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
161 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
162 b'debugbuilddag', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
163 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
164 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
165 b'm', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
166 b'mergeable-file', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
167 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
168 _(b'add single file mergeable changes'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
169 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
170 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
171 b'o', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
172 b'overwritten-file', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
173 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
174 _(b'add single file all revs overwrite'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
175 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
176 (b'n', b'new-file', None, _(b'add new file at each rev')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
177 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
178 _(b'[OPTION]... [TEXT]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
179 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
180 def debugbuilddag( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
181 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
182 repo, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
183 text=None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
184 mergeable_file=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
185 overwritten_file=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
186 new_file=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
187 ): |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
188 """builds a repo with a given DAG from scratch in the current empty repo |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
189 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
190 The description of the DAG is read from stdin if not given on the |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
191 command line. |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
192 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
193 Elements: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
194 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
195 - "+n" is a linear run of n nodes based on the current default parent |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
196 - "." is a single node based on the current default parent |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
197 - "$" resets the default parent to null (implied at the start); |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
198 otherwise the default parent is always the last node created |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
199 - "<p" sets the default parent to the backref p |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
200 - "*p" is a fork at parent p, which is a backref |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
201 - "*p1/p2" is a merge of parents p1 and p2, which are backrefs |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
202 - "/p2" is a merge of the preceding node and p2 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
203 - ":tag" defines a local tag for the preceding node |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
204 - "@branch" sets the named branch for subsequent nodes |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
205 - "#...\\n" is a comment up to the end of the line |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
206 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
207 Whitespace between the above elements is ignored. |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
208 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
209 A backref is either |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
210 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
211 - a number n, which references the node curr-n, where curr is the current |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
212 node, or |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
213 - the name of a local tag you placed earlier using ":tag", or |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
214 - empty to denote the default parent. |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
215 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
216 All string valued-elements are either strictly alphanumeric, or must |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
217 be enclosed in double quotes ("..."), with "\\" as escape character. |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
218 """ |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
219 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
220 if text is None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
221 ui.status(_(b"reading DAG from stdin\n")) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
222 text = ui.fin.read() |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
223 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
224 cl = repo.changelog |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
225 if len(cl) > 0: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
226 raise error.Abort(_(b'repository is not empty')) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
227 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
228 # determine number of revs in DAG |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
229 total = 0 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
230 for type, data in dagparser.parsedag(text): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
231 if type == b'n': |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
232 total += 1 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
233 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
234 if mergeable_file: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
235 linesperrev = 2 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
236 # make a file with k lines per rev |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
237 initialmergedlines = [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
238 b'%d' % i for i in pycompat.xrange(0, total * linesperrev) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
239 ] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
240 initialmergedlines.append(b"") |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
241 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
242 tags = [] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
243 progress = ui.makeprogress( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
244 _(b'building'), unit=_(b'revisions'), total=total |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
245 ) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
246 with progress, repo.wlock(), repo.lock(), repo.transaction(b"builddag"): |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
247 at = -1 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
248 atbranch = b'default' |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
249 nodeids = [] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
250 id = 0 |
38381
fce1c17493db
debugbuilddag: use progress helper
Martin von Zweigbergk <martinvonz@google.com>
parents:
38361
diff
changeset
|
251 progress.update(id) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
252 for type, data in dagparser.parsedag(text): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
253 if type == b'n': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
254 ui.note((b'node %s\n' % pycompat.bytestr(data))) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
255 id, ps = data |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
256 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
257 files = [] |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
258 filecontent = {} |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
259 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
260 p2 = None |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
261 if mergeable_file: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
262 fn = b"mf" |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
263 p1 = repo[ps[0]] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
264 if len(ps) > 1: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
265 p2 = repo[ps[1]] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
266 pa = p1.ancestor(p2) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
267 base, local, other = [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
268 x[fn].data() for x in (pa, p1, p2) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
269 ] |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
270 m3 = simplemerge.Merge3Text(base, local, other) |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
271 ml = [l.strip() for l in m3.merge_lines()] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
272 ml.append(b"") |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
273 elif at > 0: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
274 ml = p1[fn].data().split(b"\n") |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
275 else: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
276 ml = initialmergedlines |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
277 ml[id * linesperrev] += b" r%i" % id |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
278 mergedtext = b"\n".join(ml) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
279 files.append(fn) |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
280 filecontent[fn] = mergedtext |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
281 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
282 if overwritten_file: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
283 fn = b"of" |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
284 files.append(fn) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
285 filecontent[fn] = b"r%i\n" % id |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
286 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
287 if new_file: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
288 fn = b"nf%i" % id |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
289 files.append(fn) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
290 filecontent[fn] = b"r%i\n" % id |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
291 if len(ps) > 1: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
292 if not p2: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
293 p2 = repo[ps[1]] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
294 for fn in p2: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
295 if fn.startswith(b"nf"): |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
296 files.append(fn) |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
297 filecontent[fn] = p2[fn].data() |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
298 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
299 def fctxfn(repo, cx, path): |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
300 if path in filecontent: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
301 return context.memfilectx( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
302 repo, cx, path, filecontent[path] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
303 ) |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
304 return None |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
305 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
306 if len(ps) == 0 or ps[0] < 0: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
307 pars = [None, None] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
308 elif len(ps) == 1: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
309 pars = [nodeids[ps[0]], None] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
310 else: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
311 pars = [nodeids[p] for p in ps] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
312 cx = context.memctx( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
313 repo, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
314 pars, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
315 b"r%i" % id, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
316 files, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
317 fctxfn, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
318 date=(id, 0), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
319 user=b"debugbuilddag", |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
320 extra={b'branch': atbranch}, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
321 ) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
322 nodeid = repo.commitctx(cx) |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
323 nodeids.append(nodeid) |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
324 at = id |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
325 elif type == b'l': |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
326 id, name = data |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
327 ui.note((b'tag %s\n' % name)) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
328 tags.append(b"%s %s\n" % (hex(repo.changelog.node(id)), name)) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
329 elif type == b'a': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
330 ui.note((b'branch %s\n' % data)) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
331 atbranch = data |
38381
fce1c17493db
debugbuilddag: use progress helper
Martin von Zweigbergk <martinvonz@google.com>
parents:
38361
diff
changeset
|
332 progress.update(id) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
333 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
334 if tags: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
335 repo.vfs.write(b"localtags", b"".join(tags)) |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
336 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
337 |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
338 def _debugchangegroup(ui, gen, all=None, indent=0, **opts): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
339 indent_string = b' ' * indent |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
340 if all: |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
341 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
342 b"%sformat: id, p1, p2, cset, delta base, len(delta)\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
343 % indent_string |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
344 ) |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
345 |
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
346 def showchunks(named): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
347 ui.write(b"\n%s%s\n" % (indent_string, named)) |
34299
311f6ccf8f23
debug: update debugbundle to use new deltaiter api
Durham Goode <durham@fb.com>
parents:
34145
diff
changeset
|
348 for deltadata in gen.deltaiter(): |
311f6ccf8f23
debug: update debugbundle to use new deltaiter api
Durham Goode <durham@fb.com>
parents:
34145
diff
changeset
|
349 node, p1, p2, cs, deltabase, delta, flags = deltadata |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
350 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
351 b"%s%s %s %s %s %s %d\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
352 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
353 indent_string, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
354 hex(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
355 hex(p1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
356 hex(p2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
357 hex(cs), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
358 hex(deltabase), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
359 len(delta), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
360 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
361 ) |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
362 |
43977
7a2c49a3cbae
debug: drop unused variable assignments
Matt Harbison <matt_harbison@yahoo.com>
parents:
43884
diff
changeset
|
363 gen.changelogheader() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
364 showchunks(b"changelog") |
43977
7a2c49a3cbae
debug: drop unused variable assignments
Matt Harbison <matt_harbison@yahoo.com>
parents:
43884
diff
changeset
|
365 gen.manifestheader() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
366 showchunks(b"manifest") |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
367 for chunkdata in iter(gen.filelogheader, {}): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
368 fname = chunkdata[b'filename'] |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
369 showchunks(fname) |
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
370 else: |
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
371 if isinstance(gen, bundle2.unbundle20): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
372 raise error.Abort(_(b'use debugbundle2 for this file')) |
43977
7a2c49a3cbae
debug: drop unused variable assignments
Matt Harbison <matt_harbison@yahoo.com>
parents:
43884
diff
changeset
|
373 gen.changelogheader() |
34299
311f6ccf8f23
debug: update debugbundle to use new deltaiter api
Durham Goode <durham@fb.com>
parents:
34145
diff
changeset
|
374 for deltadata in gen.deltaiter(): |
311f6ccf8f23
debug: update debugbundle to use new deltaiter api
Durham Goode <durham@fb.com>
parents:
34145
diff
changeset
|
375 node, p1, p2, cs, deltabase, delta, flags = deltadata |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
376 ui.write(b"%s%s\n" % (indent_string, hex(node))) |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
377 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
378 |
33041
b482d80e041b
debugcommands: pass part, not read data, into _debugobsmarker()
Martin von Zweigbergk <martinvonz@google.com>
parents:
33040
diff
changeset
|
379 def _debugobsmarkers(ui, part, indent=0, **opts): |
32550
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
380 """display version and markers contained in 'data'""" |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
381 opts = pycompat.byteskwargs(opts) |
33041
b482d80e041b
debugcommands: pass part, not read data, into _debugobsmarker()
Martin von Zweigbergk <martinvonz@google.com>
parents:
33040
diff
changeset
|
382 data = part.read() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
383 indent_string = b' ' * indent |
32550
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
384 try: |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
385 version, markers = obsolete._readmarkers(data) |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
386 except error.UnknownVersion as exc: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
387 msg = b"%sunsupported version: %s (%d bytes)\n" |
32550
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
388 msg %= indent_string, exc.version, len(data) |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
389 ui.write(msg) |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
390 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
391 msg = b"%sversion: %d (%d bytes)\n" |
32550
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
392 msg %= indent_string, version, len(data) |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
393 ui.write(msg) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
394 fm = ui.formatter(b'debugobsolete', opts) |
32550
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
395 for rawmarker in sorted(markers): |
33154
4e30168d7939
obsutil: move the 'marker' class to the new modules
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33148
diff
changeset
|
396 m = obsutil.marker(None, rawmarker) |
32550
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
397 fm.startitem() |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
398 fm.plain(indent_string) |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
399 cmdutil.showmarker(fm, m) |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
400 fm.end() |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
401 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
402 |
33043
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
403 def _debugphaseheads(ui, data, indent=0): |
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
404 """display version and markers contained in 'data'""" |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
405 indent_string = b' ' * indent |
34327
12c42bcd4133
phases: move the binary decoding function in the phases module
Boris Feld <boris.feld@octobus.net>
parents:
34299
diff
changeset
|
406 headsbyphase = phases.binarydecode(data) |
33043
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
407 for phase in phases.allphases: |
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
408 for head in headsbyphase[phase]: |
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
409 ui.write(indent_string) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
410 ui.write(b'%s %s\n' % (hex(head), phases.phasenames[phase])) |
33043
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
411 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
412 |
34043
626a28f30dbd
debugcommands: stabilize output of debugbundle by having a custom repr
Augie Fackler <raf@durin42.com>
parents:
33553
diff
changeset
|
413 def _quasirepr(thing): |
626a28f30dbd
debugcommands: stabilize output of debugbundle by having a custom repr
Augie Fackler <raf@durin42.com>
parents:
33553
diff
changeset
|
414 if isinstance(thing, (dict, util.sortdict, collections.OrderedDict)): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
415 return b'{%s}' % ( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
416 b', '.join(b'%s: %s' % (k, thing[k]) for k in sorted(thing)) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
417 ) |
34043
626a28f30dbd
debugcommands: stabilize output of debugbundle by having a custom repr
Augie Fackler <raf@durin42.com>
parents:
33553
diff
changeset
|
418 return pycompat.bytestr(repr(thing)) |
626a28f30dbd
debugcommands: stabilize output of debugbundle by having a custom repr
Augie Fackler <raf@durin42.com>
parents:
33553
diff
changeset
|
419 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
420 |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
421 def _debugbundle2(ui, gen, all=None, **opts): |
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
422 """lists the contents of a bundle2""" |
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
423 if not isinstance(gen, bundle2.unbundle20): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
424 raise error.Abort(_(b'not a bundle2 file')) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
425 ui.write((b'Stream params: %s\n' % _quasirepr(gen.params))) |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
426 parttypes = opts.get('part_type', []) |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
427 for part in gen.iterparts(): |
32714
3ef319e9505f
debugbundle: add --part-type flag to emit only named part types
Danek Duvall <danek.duvall@oracle.com>
parents:
32649
diff
changeset
|
428 if parttypes and part.type not in parttypes: |
3ef319e9505f
debugbundle: add --part-type flag to emit only named part types
Danek Duvall <danek.duvall@oracle.com>
parents:
32649
diff
changeset
|
429 continue |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
430 msg = b'%s -- %s (mandatory: %r)\n' |
37836
d618558e4e8b
debugbundle: also display if a part is mandatory or advisory
Boris Feld <boris.feld@octobus.net>
parents:
37823
diff
changeset
|
431 ui.write((msg % (part.type, _quasirepr(part.params), part.mandatory))) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
432 if part.type == b'changegroup': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
433 version = part.params.get(b'version', b'01') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
434 cg = changegroup.getunbundler(version, part, b'UN') |
36957
c92d1d3c58ee
debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents:
36851
diff
changeset
|
435 if not ui.quiet: |
c92d1d3c58ee
debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents:
36851
diff
changeset
|
436 _debugchangegroup(ui, cg, all=all, indent=4, **opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
437 if part.type == b'obsmarkers': |
36957
c92d1d3c58ee
debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents:
36851
diff
changeset
|
438 if not ui.quiet: |
c92d1d3c58ee
debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents:
36851
diff
changeset
|
439 _debugobsmarkers(ui, part, indent=4, **opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
440 if part.type == b'phase-heads': |
36957
c92d1d3c58ee
debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents:
36851
diff
changeset
|
441 if not ui.quiet: |
c92d1d3c58ee
debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents:
36851
diff
changeset
|
442 _debugphaseheads(ui, part, indent=4) |
30511
6da030496667
debugcommands: move debug{create,apply}streambundleclone to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30510
diff
changeset
|
443 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
444 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
445 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
446 b'debugbundle', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
447 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
448 (b'a', b'all', None, _(b'show all details')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
449 (b'', b'part-type', [], _(b'show only the named part type')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
450 (b'', b'spec', None, _(b'print the bundlespec of the bundle')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
451 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
452 _(b'FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
453 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
454 ) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
455 def debugbundle(ui, bundlepath, all=None, spec=None, **opts): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
456 """lists the contents of a bundle""" |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
457 with hg.openpath(ui, bundlepath) as f: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
458 if spec: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
459 spec = exchange.getbundlespec(ui, f) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
460 ui.write(b'%s\n' % spec) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
461 return |
30511
6da030496667
debugcommands: move debug{create,apply}streambundleclone to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30510
diff
changeset
|
462 |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
463 gen = exchange.readbundle(ui, f, bundlepath) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
464 if isinstance(gen, bundle2.unbundle20): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
465 return _debugbundle2(ui, gen, all=all, **opts) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
466 _debugchangegroup(ui, gen, all=all, **opts) |
30512
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
467 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
468 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
469 @command(b'debugcapabilities', [], _(b'PATH'), norepo=True) |
35015
7ee2d859f720
debug: add a debugcapabilities commands
Boris Feld <boris.feld@octobus.net>
parents:
34645
diff
changeset
|
470 def debugcapabilities(ui, path, **opts): |
7ee2d859f720
debug: add a debugcapabilities commands
Boris Feld <boris.feld@octobus.net>
parents:
34645
diff
changeset
|
471 """lists the capabilities of a remote peer""" |
35408
cd3392cb5818
py3: handle keyword arguments correctly in debugcommands.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35407
diff
changeset
|
472 opts = pycompat.byteskwargs(opts) |
35015
7ee2d859f720
debug: add a debugcapabilities commands
Boris Feld <boris.feld@octobus.net>
parents:
34645
diff
changeset
|
473 peer = hg.peer(ui, opts, path) |
7ee2d859f720
debug: add a debugcapabilities commands
Boris Feld <boris.feld@octobus.net>
parents:
34645
diff
changeset
|
474 caps = peer.capabilities() |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
475 ui.writenoi18n(b'Main capabilities:\n') |
35015
7ee2d859f720
debug: add a debugcapabilities commands
Boris Feld <boris.feld@octobus.net>
parents:
34645
diff
changeset
|
476 for c in sorted(caps): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
477 ui.write(b' %s\n' % c) |
35016
762ea8a1f5e7
debug: print parsed bundle2 capabilities with debugcapabilities
Boris Feld <boris.feld@octobus.net>
parents:
35015
diff
changeset
|
478 b2caps = bundle2.bundle2caps(peer) |
762ea8a1f5e7
debug: print parsed bundle2 capabilities with debugcapabilities
Boris Feld <boris.feld@octobus.net>
parents:
35015
diff
changeset
|
479 if b2caps: |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
480 ui.writenoi18n(b'Bundle2 capabilities:\n') |
43106
d783f945a701
py3: finish porting iteritems() to pycompat and remove source transformer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43094
diff
changeset
|
481 for key, values in sorted(pycompat.iteritems(b2caps)): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
482 ui.write(b' %s\n' % key) |
35016
762ea8a1f5e7
debug: print parsed bundle2 capabilities with debugcapabilities
Boris Feld <boris.feld@octobus.net>
parents:
35015
diff
changeset
|
483 for v in values: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
484 ui.write(b' %s\n' % v) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
485 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
486 |
45665
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
487 @command(b'debugchangedfiles', [], b'REV') |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
488 def debugchangedfiles(ui, repo, rev): |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
489 """list the stored files changes for a revision""" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
490 ctx = scmutil.revsingle(repo, rev, None) |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
491 sd = repo.changelog.sidedata(ctx.rev()) |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
492 files_block = sd.get(sidedata.SD_FILES) |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
493 if files_block is not None: |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
494 files = metadata.decode_files_sidedata(sd) |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
495 for f in sorted(files.touched): |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
496 if f in files.added: |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
497 action = b"added" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
498 elif f in files.removed: |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
499 action = b"removed" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
500 elif f in files.merged: |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
501 action = b"merged" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
502 elif f in files.salvaged: |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
503 action = b"salvaged" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
504 else: |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
505 action = b"touched" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
506 |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
507 copy_parent = b"" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
508 copy_source = b"" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
509 if f in files.copied_from_p1: |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
510 copy_parent = b"p1" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
511 copy_source = files.copied_from_p1[f] |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
512 elif f in files.copied_from_p2: |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
513 copy_parent = b"p2" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
514 copy_source = files.copied_from_p2[f] |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
515 |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
516 data = (action, copy_parent, f, copy_source) |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
517 template = b"%-8s %2s: %s, %s;\n" |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
518 ui.write(template % data) |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
519 |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
520 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
521 @command(b'debugcheckstate', [], b'') |
30512
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
522 def debugcheckstate(ui, repo): |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
523 """validate the correctness of the current dirstate""" |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
524 parent1, parent2 = repo.dirstate.parents() |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
525 m1 = repo[parent1].manifest() |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
526 m2 = repo[parent2].manifest() |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
527 errors = 0 |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
528 for f in repo.dirstate: |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
529 state = repo.dirstate[f] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
530 if state in b"nr" and f not in m1: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
531 ui.warn(_(b"%s in state %s, but not in manifest1\n") % (f, state)) |
30512
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
532 errors += 1 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
533 if state in b"a" and f in m1: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
534 ui.warn(_(b"%s in state %s, but also in manifest1\n") % (f, state)) |
30512
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
535 errors += 1 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
536 if state in b"m" and f not in m1 and f not in m2: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
537 ui.warn( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
538 _(b"%s in state %s, but not in either manifest\n") % (f, state) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
539 ) |
30512
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
540 errors += 1 |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
541 for f in m1: |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
542 state = repo.dirstate[f] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
543 if state not in b"nrm": |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
544 ui.warn(_(b"%s in manifest1, but listed as state %s") % (f, state)) |
30512
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
545 errors += 1 |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
546 if errors: |
43679
72b454fae92e
debugcommands: don't shadow the error module
Augie Fackler <augie@google.com>
parents:
43677
diff
changeset
|
547 errstr = _(b".hg/dirstate inconsistent with current parent's manifest") |
72b454fae92e
debugcommands: don't shadow the error module
Augie Fackler <augie@google.com>
parents:
43677
diff
changeset
|
548 raise error.Abort(errstr) |
30513
c3bdc27121d1
debugcommands: move 'debugcommands' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30512
diff
changeset
|
549 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
550 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
551 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
552 b'debugcolor', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
553 [(b'', b'style', None, _(b'show all configured styles'))], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
554 b'hg debugcolor', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
555 ) |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
556 def debugcolor(ui, repo, **opts): |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
557 """show available color, effects or style""" |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
558 ui.writenoi18n(b'color mode: %s\n' % stringutil.pprint(ui._colormode)) |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
559 if opts.get('style'): |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
560 return _debugdisplaystyle(ui) |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
561 else: |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
562 return _debugdisplaycolor(ui) |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
563 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
564 |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
565 def _debugdisplaycolor(ui): |
31136
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
566 ui = ui.copy() |
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
567 ui._styles.clear() |
31694
57a22f699179
color: stop mutating the default effects map
Matt Harbison <matt_harbison@yahoo.com>
parents:
31639
diff
changeset
|
568 for effect in color._activeeffects(ui).keys(): |
31136
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
569 ui._styles[effect] = effect |
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
570 if ui._terminfoparams: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
571 for k, v in ui.configitems(b'color'): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
572 if k.startswith(b'color.'): |
31136
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
573 ui._styles[k] = k[6:] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
574 elif k.startswith(b'terminfo.'): |
31136
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
575 ui._styles[k] = k[9:] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
576 ui.write(_(b'available colors:\n')) |
31136
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
577 # sort label with a '_' after the other to group '_background' entry. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
578 items = sorted(ui._styles.items(), key=lambda i: (b'_' in i[0], i[0], i[1])) |
31136
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
579 for colorname, label in items: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
580 ui.write(b'%s\n' % colorname, label=label) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
581 |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
582 |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
583 def _debugdisplaystyle(ui): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
584 ui.write(_(b'available style:\n')) |
37823
0e9ddab2bac2
debugcolor: fix crash by empty styles (issue5856)
Yuya Nishihara <yuya@tcha.org>
parents:
37722
diff
changeset
|
585 if not ui._styles: |
0e9ddab2bac2
debugcolor: fix crash by empty styles (issue5856)
Yuya Nishihara <yuya@tcha.org>
parents:
37722
diff
changeset
|
586 return |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
587 width = max(len(s) for s in ui._styles) |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
588 for label, effects in sorted(ui._styles.items()): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
589 ui.write(b'%s' % label, label=label) |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
590 if effects: |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
591 # 50 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
592 ui.write(b': ') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
593 ui.write(b' ' * (max(0, width - len(label)))) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
594 ui.write(b', '.join(ui.label(e, e) for e in effects.split())) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
595 ui.write(b'\n') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
596 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
597 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
598 @command(b'debugcreatestreamclonebundle', [], b'FILE') |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
599 def debugcreatestreamclonebundle(ui, repo, fname): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
600 """create a stream clone bundle file |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
601 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
602 Stream bundles are special bundles that are essentially archives of |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
603 revlog files. They are commonly used for cloning very quickly. |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
604 """ |
32765
23734c0e361f
debugcommands: issue warning when repo has secret changesets (issue5589)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32714
diff
changeset
|
605 # TODO we may want to turn this into an abort when this functionality |
23734c0e361f
debugcommands: issue warning when repo has secret changesets (issue5589)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32714
diff
changeset
|
606 # is moved into `hg bundle`. |
23734c0e361f
debugcommands: issue warning when repo has secret changesets (issue5589)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32714
diff
changeset
|
607 if phases.hassecret(repo): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
608 ui.warn( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
609 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
610 b'(warning: stream clone bundle will contain secret ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
611 b'revisions)\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
612 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
613 ) |
32765
23734c0e361f
debugcommands: issue warning when repo has secret changesets (issue5589)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32714
diff
changeset
|
614 |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
615 requirements, gen = streamclone.generatebundlev1(repo) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
616 changegroup.writechunks(ui, gen, fname) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
617 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
618 ui.write(_(b'bundle requirements: %s\n') % b', '.join(sorted(requirements))) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
619 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
620 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
621 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
622 b'debugdag', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
623 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
624 (b't', b'tags', None, _(b'use tags as labels')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
625 (b'b', b'branches', None, _(b'annotate with branch names')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
626 (b'', b'dots', None, _(b'use dots for runs')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
627 (b's', b'spaces', None, _(b'separate elements by spaces')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
628 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
629 _(b'[OPTION]... [FILE [REV]...]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
630 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
631 ) |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
632 def debugdag(ui, repo, file_=None, *revs, **opts): |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
633 """format the changelog or an index DAG as a concise textual description |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
634 |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
635 If you pass a revlog index, the revlog's DAG is emitted. If you list |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
636 revision numbers, they get labeled in the output as rN. |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
637 |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
638 Otherwise, the changelog DAG of the current repo is emitted. |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
639 """ |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
640 spaces = opts.get('spaces') |
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
641 dots = opts.get('dots') |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
642 if file_: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
643 rlog = revlog.revlog(vfsmod.vfs(encoding.getcwd(), audit=False), file_) |
44470
9d2b2df2c2ba
cleanup: run pyupgrade on our source tree to clean up varying things
Augie Fackler <augie@google.com>
parents:
44453
diff
changeset
|
644 revs = {int(r) for r in revs} |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
645 |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
646 def events(): |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
647 for r in rlog: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
648 yield b'n', (r, list(p for p in rlog.parentrevs(r) if p != -1)) |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
649 if r in revs: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
650 yield b'l', (r, b"r%i" % r) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
651 |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
652 elif repo: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
653 cl = repo.changelog |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
654 tags = opts.get('tags') |
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
655 branches = opts.get('branches') |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
656 if tags: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
657 labels = {} |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
658 for l, n in repo.tags().items(): |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
659 labels.setdefault(cl.rev(n), []).append(l) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
660 |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
661 def events(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
662 b = b"default" |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
663 for r in cl: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
664 if branches: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
665 newb = cl.read(cl.node(r))[5][b'branch'] |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
666 if newb != b: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
667 yield b'a', newb |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
668 b = newb |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
669 yield b'n', (r, list(p for p in cl.parentrevs(r) if p != -1)) |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
670 if tags: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
671 ls = labels.get(r) |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
672 if ls: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
673 for l in ls: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
674 yield b'l', (r, l) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
675 |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
676 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
677 raise error.Abort(_(b'need repo for changelog dag')) |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
678 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
679 for line in dagparser.dagtextlines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
680 events(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
681 addspaces=spaces, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
682 wraplabels=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
683 wrapannotations=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
684 wrapnonlinear=dots, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
685 usedots=dots, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
686 maxlinewidth=70, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
687 ): |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
688 ui.write(line) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
689 ui.write(b"\n") |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
690 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
691 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
692 @command(b'debugdata', cmdutil.debugrevlogopts, _(b'-c|-m|FILE REV')) |
30524
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
693 def debugdata(ui, repo, file_, rev=None, **opts): |
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
694 """dump the contents of a data file revision""" |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
695 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
696 if opts.get(b'changelog') or opts.get(b'manifest') or opts.get(b'dir'): |
30524
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
697 if rev is not None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
698 raise error.CommandError(b'debugdata', _(b'invalid arguments')) |
30524
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
699 file_, rev = None, file_ |
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
700 elif rev is None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
701 raise error.CommandError(b'debugdata', _(b'invalid arguments')) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
702 r = cmdutil.openstorage(repo, b'debugdata', file_, opts) |
30524
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
703 try: |
42789
127d57e950e0
rawdata: update callers in debugcommands
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42683
diff
changeset
|
704 ui.write(r.rawdata(r.lookup(rev))) |
30524
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
705 except KeyError: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
706 raise error.Abort(_(b'invalid revision identifier %s') % rev) |
30525
ef1353c283e3
debugcommands: move 'debugdate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30524
diff
changeset
|
707 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
708 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
709 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
710 b'debugdate', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
711 [(b'e', b'extended', None, _(b'try extended date formats'))], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
712 _(b'[-e] DATE [RANGE]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
713 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
714 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
715 ) |
30525
ef1353c283e3
debugcommands: move 'debugdate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30524
diff
changeset
|
716 def debugdate(ui, date, range=None, **opts): |
ef1353c283e3
debugcommands: move 'debugdate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30524
diff
changeset
|
717 """parse and display a date""" |
43551
313e3a279828
cleanup: remove pointless r-prefixes on double-quoted strings
Augie Fackler <augie@google.com>
parents:
43238
diff
changeset
|
718 if opts["extended"]: |
43884
38d6aa768310
debugcommands: finish moving `extendeddateformats` from util to dateutil
Matt Harbison <matt_harbison@yahoo.com>
parents:
43744
diff
changeset
|
719 d = dateutil.parsedate(date, dateutil.extendeddateformats) |
30525
ef1353c283e3
debugcommands: move 'debugdate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30524
diff
changeset
|
720 else: |
36636
c6061cadb400
util: extract all date-related utils in utils/dateutil module
Boris Feld <boris.feld@octobus.net>
parents:
36616
diff
changeset
|
721 d = dateutil.parsedate(date) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
722 ui.writenoi18n(b"internal: %d %d\n" % d) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
723 ui.writenoi18n(b"standard: %s\n" % dateutil.datestr(d)) |
30525
ef1353c283e3
debugcommands: move 'debugdate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30524
diff
changeset
|
724 if range: |
36636
c6061cadb400
util: extract all date-related utils in utils/dateutil module
Boris Feld <boris.feld@octobus.net>
parents:
36616
diff
changeset
|
725 m = dateutil.matchdate(range) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
726 ui.writenoi18n(b"match: %s\n" % m(d[0])) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
727 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
728 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
729 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
730 b'debugdeltachain', |
32414
04baab18d60a
commands: move templates of common command options to cmdutil (API)
Yuya Nishihara <yuya@tcha.org>
parents:
32410
diff
changeset
|
731 cmdutil.debugrevlogopts + cmdutil.formatteropts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
732 _(b'-c|-m|FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
733 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
734 ) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
735 def debugdeltachain(ui, repo, file_=None, **opts): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
736 """dump information about delta chains in a revlog |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
737 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
738 Output can be templatized. Available template keywords are: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
739 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
740 :``rev``: revision number |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
741 :``chainid``: delta chain identifier (numbered by unique base) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
742 :``chainlen``: delta chain length to this revision |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
743 :``prevrev``: previous revision in delta chain |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
744 :``deltatype``: role of delta / how it was computed |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
745 :``compsize``: compressed size of revision |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
746 :``uncompsize``: uncompressed size of revision |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
747 :``chainsize``: total size of compressed revisions in chain |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
748 :``chainratio``: total chain size divided by uncompressed revision size |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
749 (new delta chains typically start at ratio 2.00) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
750 :``lindist``: linear distance from base revision in delta chain to end |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
751 of this revision |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
752 :``extradist``: total size of revisions not part of this delta chain from |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
753 base of delta chain to end of this revision; a measurement |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
754 of how much extra data we need to read/seek across to read |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
755 the delta chain for this revision |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
756 :``extraratio``: extradist divided by chainsize; another representation of |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
757 how much unrelated data is needed to load this delta chain |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
758 |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
759 If the repository is configured to use the sparse read, additional keywords |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
760 are available: |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
761 |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
762 :``readsize``: total size of data read from the disk for a revision |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
763 (sum of the sizes of all the blocks) |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
764 :``largestblock``: size of the largest block of data read from the disk |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
765 :``readdensity``: density of useful bytes in the data read from the disk |
35678
43154a76f392
debugdeltachain: display how many chunks would be read in sparse-read mode
Paul Morelle <paul.morelle@octobus.net>
parents:
35585
diff
changeset
|
766 :``srchunks``: in how many data hunks the whole revision would be read |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
767 |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
768 The sparse read can be enabled with experimental.sparse-read = True |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
769 """ |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
770 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
771 r = cmdutil.openrevlog(repo, b'debugdeltachain', file_, opts) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
772 index = r.index |
38148
b17fa9041695
debugdeltachain: r.start and r.length can be retrieved outside the loop
Paul Morelle <paul.morelle@octobus.net>
parents:
38021
diff
changeset
|
773 start = r.start |
b17fa9041695
debugdeltachain: r.start and r.length can be retrieved outside the loop
Paul Morelle <paul.morelle@octobus.net>
parents:
38021
diff
changeset
|
774 length = r.length |
32355
67026d65a4fc
revlog: rename constants (API)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32305
diff
changeset
|
775 generaldelta = r.version & revlog.FLAG_GENERALDELTA |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
776 withsparseread = getattr(r, '_withsparseread', False) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
777 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
778 def revinfo(rev): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
779 e = index[rev] |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
780 compsize = e[1] |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
781 uncompsize = e[2] |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
782 chainsize = 0 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
783 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
784 if generaldelta: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
785 if e[3] == e[5]: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
786 deltatype = b'p1' |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
787 elif e[3] == e[6]: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
788 deltatype = b'p2' |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
789 elif e[3] == rev - 1: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
790 deltatype = b'prev' |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
791 elif e[3] == rev: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
792 deltatype = b'base' |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
793 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
794 deltatype = b'other' |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
795 else: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
796 if e[3] == rev: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
797 deltatype = b'base' |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
798 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
799 deltatype = b'prev' |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
800 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
801 chain = r._deltachain(rev)[0] |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
802 for iterrev in chain: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
803 e = index[iterrev] |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
804 chainsize += e[1] |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
805 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
806 return compsize, uncompsize, deltatype, chain, chainsize |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
807 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
808 fm = ui.formatter(b'debugdeltachain', opts) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
809 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
810 fm.plain( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
811 b' rev chain# chainlen prev delta ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
812 b'size rawsize chainsize ratio lindist extradist ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
813 b'extraratio' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
814 ) |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
815 if withsparseread: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
816 fm.plain(b' readsize largestblk rddensity srchunks') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
817 fm.plain(b'\n') |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
818 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
819 chainbases = {} |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
820 for rev in r: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
821 comp, uncomp, deltatype, chain, chainsize = revinfo(rev) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
822 chainbase = chain[0] |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
823 chainid = chainbases.setdefault(chainbase, len(chainbases) + 1) |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
824 basestart = start(chainbase) |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
825 revstart = start(rev) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
826 lineardist = revstart + comp - basestart |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
827 extradist = lineardist - chainsize |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
828 try: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
829 prevrev = chain[-2] |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
830 except IndexError: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
831 prevrev = -1 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
832 |
38646
93313f66b69b
debugdeltachain: avoid division by zero when a chain is empty
Paul Morelle <paul.morelle@octobus.net>
parents:
38613
diff
changeset
|
833 if uncomp != 0: |
93313f66b69b
debugdeltachain: avoid division by zero when a chain is empty
Paul Morelle <paul.morelle@octobus.net>
parents:
38613
diff
changeset
|
834 chainratio = float(chainsize) / float(uncomp) |
93313f66b69b
debugdeltachain: avoid division by zero when a chain is empty
Paul Morelle <paul.morelle@octobus.net>
parents:
38613
diff
changeset
|
835 else: |
93313f66b69b
debugdeltachain: avoid division by zero when a chain is empty
Paul Morelle <paul.morelle@octobus.net>
parents:
38613
diff
changeset
|
836 chainratio = chainsize |
93313f66b69b
debugdeltachain: avoid division by zero when a chain is empty
Paul Morelle <paul.morelle@octobus.net>
parents:
38613
diff
changeset
|
837 |
93313f66b69b
debugdeltachain: avoid division by zero when a chain is empty
Paul Morelle <paul.morelle@octobus.net>
parents:
38613
diff
changeset
|
838 if chainsize != 0: |
93313f66b69b
debugdeltachain: avoid division by zero when a chain is empty
Paul Morelle <paul.morelle@octobus.net>
parents:
38613
diff
changeset
|
839 extraratio = float(extradist) / float(chainsize) |
93313f66b69b
debugdeltachain: avoid division by zero when a chain is empty
Paul Morelle <paul.morelle@octobus.net>
parents:
38613
diff
changeset
|
840 else: |
93313f66b69b
debugdeltachain: avoid division by zero when a chain is empty
Paul Morelle <paul.morelle@octobus.net>
parents:
38613
diff
changeset
|
841 extraratio = extradist |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
842 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
843 fm.startitem() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
844 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
845 b'rev chainid chainlen prevrev deltatype compsize ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
846 b'uncompsize chainsize chainratio lindist extradist ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
847 b'extraratio', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
848 b'%7d %7d %8d %8d %7s %10d %10d %10d %9.5f %9d %9d %10.5f', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
849 rev, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
850 chainid, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
851 len(chain), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
852 prevrev, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
853 deltatype, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
854 comp, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
855 uncomp, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
856 chainsize, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
857 chainratio, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
858 lineardist, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
859 extradist, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
860 extraratio, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
861 rev=rev, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
862 chainid=chainid, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
863 chainlen=len(chain), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
864 prevrev=prevrev, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
865 deltatype=deltatype, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
866 compsize=comp, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
867 uncompsize=uncomp, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
868 chainsize=chainsize, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
869 chainratio=chainratio, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
870 lindist=lineardist, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
871 extradist=extradist, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
872 extraratio=extraratio, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
873 ) |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
874 if withsparseread: |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
875 readsize = 0 |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
876 largestblock = 0 |
35728
22a877215ea1
debugdeltachain: cleanup the double call to _slicechunk
Paul Morelle <paul.morelle@octobus.net>
parents:
35678
diff
changeset
|
877 srchunks = 0 |
22a877215ea1
debugdeltachain: cleanup the double call to _slicechunk
Paul Morelle <paul.morelle@octobus.net>
parents:
35678
diff
changeset
|
878 |
39357
655b5b465953
revlog: split functionality related to deltas computation in a new module
Boris Feld <boris.feld@octobus.net>
parents:
39309
diff
changeset
|
879 for revschunk in deltautil.slicechunk(r, chain): |
35728
22a877215ea1
debugdeltachain: cleanup the double call to _slicechunk
Paul Morelle <paul.morelle@octobus.net>
parents:
35678
diff
changeset
|
880 srchunks += 1 |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
881 blkend = start(revschunk[-1]) + length(revschunk[-1]) |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
882 blksize = blkend - start(revschunk[0]) |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
883 |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
884 readsize += blksize |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
885 if largestblock < blksize: |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
886 largestblock = blksize |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
887 |
38647
0f4c2c70e26e
debugdeltachain: protect against 0 readsize
Boris Feld <boris.feld@octobus.net>
parents:
38646
diff
changeset
|
888 if readsize: |
0f4c2c70e26e
debugdeltachain: protect against 0 readsize
Boris Feld <boris.feld@octobus.net>
parents:
38646
diff
changeset
|
889 readdensity = float(chainsize) / float(readsize) |
0f4c2c70e26e
debugdeltachain: protect against 0 readsize
Boris Feld <boris.feld@octobus.net>
parents:
38646
diff
changeset
|
890 else: |
0f4c2c70e26e
debugdeltachain: protect against 0 readsize
Boris Feld <boris.feld@octobus.net>
parents:
38646
diff
changeset
|
891 readdensity = 1 |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
892 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
893 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
894 b'readsize largestblock readdensity srchunks', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
895 b' %10d %10d %9.5f %8d', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
896 readsize, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
897 largestblock, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
898 readdensity, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
899 srchunks, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
900 readsize=readsize, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
901 largestblock=largestblock, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
902 readdensity=readdensity, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
903 srchunks=srchunks, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
904 ) |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
905 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
906 fm.plain(b'\n') |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
907 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
908 fm.end() |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
909 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
910 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
911 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
912 b'debugdirstate|debugstate', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
913 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
914 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
915 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
916 b'nodates', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
917 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
918 _(b'do not display the saved mtime (DEPRECATED)'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
919 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
920 (b'', b'dates', True, _(b'display the saved mtime')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
921 (b'', b'datesort', None, _(b'sort by saved mtime')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
922 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
923 _(b'[OPTION]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
924 ) |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
925 def debugstate(ui, repo, **opts): |
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
926 """show the contents of the current dirstate""" |
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
927 |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
928 nodates = not opts['dates'] |
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
929 if opts.get('nodates') is not None: |
39776
7e99b02768ef
debugdirstate: deprecate --nodates in favor of --no-dates
Martin von Zweigbergk <martinvonz@google.com>
parents:
39577
diff
changeset
|
930 nodates = True |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
931 datesort = opts.get('datesort') |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
932 |
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
933 if datesort: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
934 keyfunc = lambda x: (x[1][3], x[0]) # sort by mtime, then by filename |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
935 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
936 keyfunc = None # sort by filename |
43106
d783f945a701
py3: finish porting iteritems() to pycompat and remove source transformer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43094
diff
changeset
|
937 for file_, ent in sorted(pycompat.iteritems(repo.dirstate), key=keyfunc): |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
938 if ent[3] == -1: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
939 timestr = b'unset ' |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
940 elif nodates: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
941 timestr = b'set ' |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
942 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
943 timestr = time.strftime( |
43551
313e3a279828
cleanup: remove pointless r-prefixes on double-quoted strings
Augie Fackler <augie@google.com>
parents:
43238
diff
changeset
|
944 "%Y-%m-%d %H:%M:%S ", time.localtime(ent[3]) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
945 ) |
35214
d4b108fdf423
py3: use encoding.strtolocal() to convert string to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35172
diff
changeset
|
946 timestr = encoding.strtolocal(timestr) |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
947 if ent[1] & 0o20000: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
948 mode = b'lnk' |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
949 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
950 mode = b'%3o' % (ent[1] & 0o777 & ~util.umask) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
951 ui.write(b"%c %s %10d %s%s\n" % (ent[0], mode, ent[2], timestr, file_)) |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
952 for f in repo.dirstate.copies(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
953 ui.write(_(b"copy: %s -> %s\n") % (repo.dirstate.copied(f), f)) |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
954 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
955 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
956 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
957 b'debugdiscovery', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
958 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
959 (b'', b'old', None, _(b'use old-style discovery')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
960 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
961 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
962 b'nonheads', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
963 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
964 _(b'use old-style discovery with non-heads included'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
965 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
966 (b'', b'rev', [], b'restrict discovery to this set of revs'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
967 (b'', b'seed', b'12323', b'specify the random seed use for discovery'), |
46535
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
968 ( |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
969 b'', |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
970 b'local-as-revs', |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
971 "", |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
972 'treat local has having these revisions only', |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
973 ), |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
974 ( |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
975 b'', |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
976 b'remote-as-revs', |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
977 "", |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
978 'use local as remote, with only these these revisions', |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
979 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
980 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
981 + cmdutil.remoteopts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
982 _(b'[--rev REV] [OTHER]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
983 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
984 def debugdiscovery(ui, repo, remoteurl=b"default", **opts): |
46535
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
985 """runs the changeset discovery protocol in isolation |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
986 |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
987 The local peer can be "replaced" by a subset of the local repository by |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
988 using the `--local-as-revs` flag. Int he same way, usual `remote` peer can |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
989 be "replaced" by a subset of the local repository using the |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
990 `--local-as-revs` flag. This is useful to efficiently debug pathological |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
991 discovery situation. |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
992 """ |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
993 opts = pycompat.byteskwargs(opts) |
46535
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
994 unfi = repo.unfiltered() |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
995 |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
996 # setup potential extra filtering |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
997 local_revs = opts[b"local_as_revs"] |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
998 remote_revs = opts[b"remote_as_revs"] |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
999 |
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1000 # make sure tests are repeatable |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1001 random.seed(int(opts[b'seed'])) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1002 |
46535
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1003 if not remote_revs: |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1004 |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1005 remoteurl, branches = hg.parseurl(ui.expandpath(remoteurl)) |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1006 remote = hg.peer(repo, opts, remoteurl) |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1007 ui.status(_(b'comparing with %s\n') % util.hidepassword(remoteurl)) |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1008 else: |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1009 branches = (None, []) |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1010 remote_filtered_revs = scmutil.revrange( |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1011 unfi, [b"not (::(%s))" % remote_revs] |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1012 ) |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1013 remote_filtered_revs = frozenset(remote_filtered_revs) |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1014 |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1015 def remote_func(x): |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1016 return remote_filtered_revs |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1017 |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1018 repoview.filtertable[b'debug-discovery-remote-filter'] = remote_func |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1019 |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1020 remote = repo.peer() |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1021 remote._repo = remote._repo.filtered(b'debug-discovery-remote-filter') |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1022 |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1023 if local_revs: |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1024 local_filtered_revs = scmutil.revrange( |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1025 unfi, [b"not (::(%s))" % local_revs] |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1026 ) |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1027 local_filtered_revs = frozenset(local_filtered_revs) |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1028 |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1029 def local_func(x): |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1030 return local_filtered_revs |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1031 |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1032 repoview.filtertable[b'debug-discovery-local-filter'] = local_func |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1033 repo = repo.filtered(b'debug-discovery-local-filter') |
4f5e9a77ff7a
debugdiscovery: add flags to run discovery on subsets of the local repo
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46527
diff
changeset
|
1034 |
46111
d90f439ff19f
debugdiscovery: display the number of roundtrip used
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46080
diff
changeset
|
1035 data = {} |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1036 if opts.get(b'old'): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1037 |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1038 def doit(pushedrevs, remoteheads, remote=remote): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1039 if not util.safehasattr(remote, b'branches'): |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1040 # enable in-client legacy support |
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1041 remote = localrepo.locallegacypeer(remote.local()) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1042 common, _in, hds = treediscovery.findcommonincoming( |
46111
d90f439ff19f
debugdiscovery: display the number of roundtrip used
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46080
diff
changeset
|
1043 repo, remote, force=True, audit=data |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1044 ) |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1045 common = set(common) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1046 if not opts.get(b'nonheads'): |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1047 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1048 b"unpruned common: %s\n" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1049 % b" ".join(sorted(short(n) for n in common)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1050 ) |
39196
26f3d075f36e
debugcommands: use a revset instead of dagutil
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39194
diff
changeset
|
1051 |
26f3d075f36e
debugcommands: use a revset instead of dagutil
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39194
diff
changeset
|
1052 clnode = repo.changelog.node |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1053 common = repo.revs(b'heads(::%ln)', common) |
39196
26f3d075f36e
debugcommands: use a revset instead of dagutil
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39194
diff
changeset
|
1054 common = {clnode(r) for r in common} |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1055 return common, hds |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1056 |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1057 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1058 |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1059 def doit(pushedrevs, remoteheads, remote=remote): |
35313
f77121b6bf1b
setdiscover: allow to ignore part of the local graph
Boris Feld <boris.feld@octobus.net>
parents:
35214
diff
changeset
|
1060 nodes = None |
f77121b6bf1b
setdiscover: allow to ignore part of the local graph
Boris Feld <boris.feld@octobus.net>
parents:
35214
diff
changeset
|
1061 if pushedrevs: |
f77121b6bf1b
setdiscover: allow to ignore part of the local graph
Boris Feld <boris.feld@octobus.net>
parents:
35214
diff
changeset
|
1062 revs = scmutil.revrange(repo, pushedrevs) |
f77121b6bf1b
setdiscover: allow to ignore part of the local graph
Boris Feld <boris.feld@octobus.net>
parents:
35214
diff
changeset
|
1063 nodes = [repo[r].node() for r in revs] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1064 common, any, hds = setdiscovery.findcommonheads( |
46111
d90f439ff19f
debugdiscovery: display the number of roundtrip used
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46080
diff
changeset
|
1065 ui, repo, remote, ancestorsof=nodes, audit=data |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1066 ) |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1067 return common, hds |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1068 |
35426
fed2c040764e
debugdiscovery: drop reference to non-existent --remote-head option
Martin von Zweigbergk <martinvonz@google.com>
parents:
35425
diff
changeset
|
1069 remoterevs, _checkout = hg.addbranchrevs(repo, remote, branches, revs=None) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1070 localrevs = opts[b'rev'] |
43238
101ae8bbfa02
cleanup: hgdemandimport.tracing accepts strings, not bytes
Augie Fackler <augie@google.com>
parents:
43136
diff
changeset
|
1071 with util.timedcm('debug-discovery') as t: |
42035
eec20025ada3
debugdiscovery: display time elapsed during the discovery step
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42034
diff
changeset
|
1072 common, hds = doit(localrevs, remoterevs) |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1073 |
42032
63165e4a76da
debugdiscovery: display more statistic about the common set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42031
diff
changeset
|
1074 # compute all statistics |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1075 heads_common = set(common) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1076 heads_remote = set(hds) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1077 heads_local = set(repo.heads()) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1078 # note: they cannot be a local or remote head that is in common and not |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1079 # itself a head of common. |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1080 heads_common_local = heads_common & heads_local |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1081 heads_common_remote = heads_common & heads_remote |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1082 heads_common_both = heads_common & heads_remote & heads_local |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1083 |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1084 all = repo.revs(b'all()') |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1085 common = repo.revs(b'::%ln', common) |
46079
3ca9d26c5984
debugdiscovery: add some data about the shapes of the sets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46065
diff
changeset
|
1086 roots_common = repo.revs(b'roots(::%ld)', common) |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1087 missing = repo.revs(b'not ::%ld', common) |
46079
3ca9d26c5984
debugdiscovery: add some data about the shapes of the sets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46065
diff
changeset
|
1088 heads_missing = repo.revs(b'heads(%ld)', missing) |
3ca9d26c5984
debugdiscovery: add some data about the shapes of the sets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46065
diff
changeset
|
1089 roots_missing = repo.revs(b'roots(%ld)', missing) |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1090 assert len(common) + len(missing) == len(all) |
42032
63165e4a76da
debugdiscovery: display more statistic about the common set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42031
diff
changeset
|
1091 |
46080
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1092 initial_undecided = repo.revs( |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1093 b'not (::%ln or %ln::)', heads_common_remote, heads_common_local |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1094 ) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1095 heads_initial_undecided = repo.revs(b'heads(%ld)', initial_undecided) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1096 roots_initial_undecided = repo.revs(b'roots(%ld)', initial_undecided) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1097 common_initial_undecided = initial_undecided & common |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1098 missing_initial_undecided = initial_undecided & missing |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1099 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1100 data[b'elapsed'] = t.elapsed |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1101 data[b'nb-common-heads'] = len(heads_common) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1102 data[b'nb-common-heads-local'] = len(heads_common_local) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1103 data[b'nb-common-heads-remote'] = len(heads_common_remote) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1104 data[b'nb-common-heads-both'] = len(heads_common_both) |
46079
3ca9d26c5984
debugdiscovery: add some data about the shapes of the sets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46065
diff
changeset
|
1105 data[b'nb-common-roots'] = len(roots_common) |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1106 data[b'nb-head-local'] = len(heads_local) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1107 data[b'nb-head-local-missing'] = len(heads_local) - len(heads_common_local) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1108 data[b'nb-head-remote'] = len(heads_remote) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1109 data[b'nb-head-remote-unknown'] = len(heads_remote) - len( |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1110 heads_common_remote |
46064
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1111 ) |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1112 data[b'nb-revs'] = len(all) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1113 data[b'nb-revs-common'] = len(common) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1114 data[b'nb-revs-missing'] = len(missing) |
46112
9e24b3d8e896
debugdiscovery: fix swapped heads and roots
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46111
diff
changeset
|
1115 data[b'nb-missing-heads'] = len(heads_missing) |
9e24b3d8e896
debugdiscovery: fix swapped heads and roots
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46111
diff
changeset
|
1116 data[b'nb-missing-roots'] = len(roots_missing) |
46080
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1117 data[b'nb-ini_und'] = len(initial_undecided) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1118 data[b'nb-ini_und-heads'] = len(heads_initial_undecided) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1119 data[b'nb-ini_und-roots'] = len(roots_initial_undecided) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1120 data[b'nb-ini_und-common'] = len(common_initial_undecided) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1121 data[b'nb-ini_und-missing'] = len(missing_initial_undecided) |
42032
63165e4a76da
debugdiscovery: display more statistic about the common set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42031
diff
changeset
|
1122 |
63165e4a76da
debugdiscovery: display more statistic about the common set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42031
diff
changeset
|
1123 # display discovery summary |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1124 ui.writenoi18n(b"elapsed time: %(elapsed)f seconds\n" % data) |
46111
d90f439ff19f
debugdiscovery: display the number of roundtrip used
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46080
diff
changeset
|
1125 ui.writenoi18n(b"round-trips: %(total-roundtrips)9d\n" % data) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1126 ui.writenoi18n(b"heads summary:\n") |
46064
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1127 ui.writenoi18n(b" total common heads: %(nb-common-heads)9d\n" % data) |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1128 ui.writenoi18n( |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1129 b" also local heads: %(nb-common-heads-local)9d\n" % data |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1130 ) |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1131 ui.writenoi18n( |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1132 b" also remote heads: %(nb-common-heads-remote)9d\n" % data |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1133 ) |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1134 ui.writenoi18n(b" both: %(nb-common-heads-both)9d\n" % data) |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1135 ui.writenoi18n(b" local heads: %(nb-head-local)9d\n" % data) |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1136 ui.writenoi18n( |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1137 b" common: %(nb-common-heads-local)9d\n" % data |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1138 ) |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1139 ui.writenoi18n( |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1140 b" missing: %(nb-head-local-missing)9d\n" % data |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1141 ) |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1142 ui.writenoi18n(b" remote heads: %(nb-head-remote)9d\n" % data) |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1143 ui.writenoi18n( |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1144 b" common: %(nb-common-heads-remote)9d\n" % data |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1145 ) |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1146 ui.writenoi18n( |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1147 b" unknown: %(nb-head-remote-unknown)9d\n" % data |
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1148 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1149 ui.writenoi18n(b"local changesets: %(nb-revs)9d\n" % data) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1150 ui.writenoi18n(b" common: %(nb-revs-common)9d\n" % data) |
46079
3ca9d26c5984
debugdiscovery: add some data about the shapes of the sets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46065
diff
changeset
|
1151 ui.writenoi18n(b" heads: %(nb-common-heads)9d\n" % data) |
3ca9d26c5984
debugdiscovery: add some data about the shapes of the sets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46065
diff
changeset
|
1152 ui.writenoi18n(b" roots: %(nb-common-roots)9d\n" % data) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1153 ui.writenoi18n(b" missing: %(nb-revs-missing)9d\n" % data) |
46079
3ca9d26c5984
debugdiscovery: add some data about the shapes of the sets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46065
diff
changeset
|
1154 ui.writenoi18n(b" heads: %(nb-missing-heads)9d\n" % data) |
3ca9d26c5984
debugdiscovery: add some data about the shapes of the sets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46065
diff
changeset
|
1155 ui.writenoi18n(b" roots: %(nb-missing-roots)9d\n" % data) |
46080
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1156 ui.writenoi18n(b" first undecided set: %(nb-ini_und)9d\n" % data) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1157 ui.writenoi18n(b" heads: %(nb-ini_und-heads)9d\n" % data) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1158 ui.writenoi18n(b" roots: %(nb-ini_und-roots)9d\n" % data) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1159 ui.writenoi18n(b" common: %(nb-ini_und-common)9d\n" % data) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1160 ui.writenoi18n(b" missing: %(nb-ini_und-missing)9d\n" % data) |
42032
63165e4a76da
debugdiscovery: display more statistic about the common set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42031
diff
changeset
|
1161 |
42034
fd8d13ea1bcc
debugdiscovery: only list common heads on verbose
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42033
diff
changeset
|
1162 if ui.verbose: |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1163 ui.writenoi18n( |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1164 b"common heads: %s\n" |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1165 % b" ".join(sorted(short(n) for n in heads_common)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1166 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1167 |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1168 |
35562
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1169 _chunksize = 4 << 10 |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1170 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1171 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1172 @command( |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1173 b'debugdownload', |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1174 [ |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1175 (b'o', b'output', b'', _(b'path')), |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1176 ], |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1177 optionalrepo=True, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1178 ) |
35730
05d415790761
debugdownload: read repository hgrc if there is one
Boris Feld <boris.feld@octobus.net>
parents:
35728
diff
changeset
|
1179 def debugdownload(ui, repo, url, output=None, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1180 """download a resource using Mercurial logic and config""" |
35562
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1181 fh = urlmod.open(ui, url, output) |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1182 |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1183 dest = ui |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1184 if output: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1185 dest = open(output, b"wb", _chunksize) |
35562
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1186 try: |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1187 data = fh.read(_chunksize) |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1188 while data: |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1189 dest.write(data) |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1190 data = fh.read(_chunksize) |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1191 finally: |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1192 if output: |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1193 dest.close() |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1194 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1195 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1196 @command(b'debugextensions', cmdutil.formatteropts, [], optionalrepo=True) |
38021
8ba0344f9fb1
debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents:
37986
diff
changeset
|
1197 def debugextensions(ui, repo, **opts): |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1198 '''show information about active extensions''' |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
1199 opts = pycompat.byteskwargs(opts) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1200 exts = extensions.extensions(ui) |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1201 hgver = util.version() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1202 fm = ui.formatter(b'debugextensions', opts) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1203 for extname, extmod in sorted(exts, key=operator.itemgetter(0)): |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1204 isinternal = extensions.ismoduleinternal(extmod) |
43727
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1205 extsource = None |
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1206 |
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1207 if util.safehasattr(extmod, '__file__'): |
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1208 extsource = pycompat.fsencode(extmod.__file__) |
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1209 elif getattr(sys, 'oxidized', False): |
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1210 extsource = pycompat.sysexecutable |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1211 if isinternal: |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1212 exttestedwith = [] # never expose magic string to users |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1213 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1214 exttestedwith = getattr(extmod, 'testedwith', b'').split() |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1215 extbuglink = getattr(extmod, 'buglink', None) |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1216 |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1217 fm.startitem() |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1218 |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1219 if ui.quiet or ui.verbose: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1220 fm.write(b'name', b'%s\n', extname) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1221 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1222 fm.write(b'name', b'%s', extname) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1223 if isinternal or hgver in exttestedwith: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1224 fm.plain(b'\n') |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1225 elif not exttestedwith: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1226 fm.plain(_(b' (untested!)\n')) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1227 else: |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1228 lasttestedversion = exttestedwith[-1] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1229 fm.plain(b' (%s!)\n' % lasttestedversion) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1230 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1231 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1232 ui.verbose and extsource, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1233 b'source', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1234 _(b' location: %s\n'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1235 extsource or b"", |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1236 ) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1237 |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1238 if ui.verbose: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1239 fm.plain(_(b' bundled: %s\n') % [b'no', b'yes'][isinternal]) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1240 fm.data(bundled=isinternal) |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1241 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1242 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1243 ui.verbose and exttestedwith, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1244 b'testedwith', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1245 _(b' tested with: %s\n'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1246 fm.formatlist(exttestedwith, name=b'ver'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1247 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1248 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1249 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1250 ui.verbose and extbuglink, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1251 b'buglink', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1252 _(b' bug reporting: %s\n'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1253 extbuglink or b"", |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1254 ) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1255 |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1256 fm.end() |
30533
1ee358c3ed26
debugcommands: move 'debugfileset' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30528
diff
changeset
|
1257 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1258 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1259 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1260 b'debugfileset', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1261 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1262 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1263 b'r', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1264 b'rev', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1265 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1266 _(b'apply the filespec on this revision'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1267 _(b'REV'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1268 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1269 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1270 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1271 b'all-files', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1272 False, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1273 _(b'test files from all revisions and working directory'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1274 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1275 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1276 b's', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1277 b'show-matcher', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1278 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1279 _(b'print internal representation of matcher'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1280 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1281 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1282 b'p', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1283 b'show-stage', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1284 [], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1285 _(b'print parsed tree at the given stage'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1286 _(b'NAME'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1287 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1288 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1289 _(b'[-r REV] [--all-files] [OPTION]... FILESPEC'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1290 ) |
30533
1ee358c3ed26
debugcommands: move 'debugfileset' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30528
diff
changeset
|
1291 def debugfileset(ui, repo, expr, **opts): |
1ee358c3ed26
debugcommands: move 'debugfileset' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30528
diff
changeset
|
1292 '''parse and apply a fileset specification''' |
39010
4d992e3f10ba
debugcommands: force import of fileset in debugfileset
Augie Fackler <augie@google.com>
parents:
38869
diff
changeset
|
1293 from . import fileset |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1294 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1295 fileset.symbols # force import of fileset so we have predicates to optimize |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1296 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1297 ctx = scmutil.revsingle(repo, opts.get(b'rev'), None) |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1298 |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1299 stages = [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1300 (b'parsed', pycompat.identity), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1301 (b'analyzed', filesetlang.analyze), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1302 (b'optimized', filesetlang.optimize), |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1303 ] |
44470
9d2b2df2c2ba
cleanup: run pyupgrade on our source tree to clean up varying things
Augie Fackler <augie@google.com>
parents:
44453
diff
changeset
|
1304 stagenames = {n for n, f in stages} |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1305 |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1306 showalways = set() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1307 if ui.verbose and not opts[b'show_stage']: |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1308 # show parsed tree by --verbose (deprecated) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1309 showalways.add(b'parsed') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1310 if opts[b'show_stage'] == [b'all']: |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1311 showalways.update(stagenames) |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1312 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1313 for n in opts[b'show_stage']: |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1314 if n not in stagenames: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1315 raise error.Abort(_(b'invalid stage name: %s') % n) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1316 showalways.update(opts[b'show_stage']) |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1317 |
38845
b9162ea1b815
fileset: extract language processing part to new module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
38842
diff
changeset
|
1318 tree = filesetlang.parse(expr) |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1319 for n, f in stages: |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1320 tree = f(tree) |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1321 if n in showalways: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1322 if opts[b'show_stage'] or n != b'parsed': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1323 ui.write(b"* %s:\n" % n) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1324 ui.write(filesetlang.prettyformat(tree), b"\n") |
30533
1ee358c3ed26
debugcommands: move 'debugfileset' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30528
diff
changeset
|
1325 |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1326 files = set() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1327 if opts[b'all_files']: |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1328 for r in repo: |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1329 c = repo[r] |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1330 files.update(c.files()) |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1331 files.update(c.substate) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1332 if opts[b'all_files'] or ctx.rev() is None: |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1333 wctx = repo[None] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1334 files.update( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1335 repo.dirstate.walk( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1336 scmutil.matchall(repo), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1337 subrepos=list(wctx.substate), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1338 unknown=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1339 ignored=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1340 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1341 ) |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1342 files.update(wctx.substate) |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1343 else: |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1344 files.update(ctx.files()) |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1345 files.update(ctx.substate) |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1346 |
44012
e685fac56693
match: resolve filesets against the passed `cwd`, not the current one
Matt Harbison <matt_harbison@yahoo.com>
parents:
43977
diff
changeset
|
1347 m = ctx.matchfileset(repo.getcwd(), expr) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1348 if opts[b'show_matcher'] or (opts[b'show_matcher'] is None and ui.verbose): |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1349 ui.writenoi18n(b'* matcher:\n', stringutil.prettyrepr(m), b'\n') |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1350 for f in sorted(files): |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1351 if not m(f): |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1352 continue |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1353 ui.write(b"%s\n" % f) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1354 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1355 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1356 @command(b'debugformat', [] + cmdutil.formatteropts) |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1357 def debugformat(ui, repo, **opts): |
35346
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1358 """display format information about the current repository |
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1359 |
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1360 Use --verbose to get extra information about current config value and |
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1361 Mercurial default.""" |
35408
cd3392cb5818
py3: handle keyword arguments correctly in debugcommands.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35407
diff
changeset
|
1362 opts = pycompat.byteskwargs(opts) |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1363 maxvariantlength = max(len(fv.name) for fv in upgrade.allformatvariant) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1364 maxvariantlength = max(len(b'format-variant'), maxvariantlength) |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1365 |
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1366 def makeformatname(name): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1367 return b'%s:' + (b' ' * (maxvariantlength - len(name))) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1368 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1369 fm = ui.formatter(b'debugformat', opts) |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1370 if fm.isplain(): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1371 |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1372 def formatvalue(value): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1373 if util.safehasattr(value, b'startswith'): |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1374 return value |
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1375 if value: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1376 return b'yes' |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1377 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1378 return b'no' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1379 |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1380 else: |
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1381 formatvalue = pycompat.identity |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1382 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1383 fm.plain(b'format-variant') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1384 fm.plain(b' ' * (maxvariantlength - len(b'format-variant'))) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1385 fm.plain(b' repo') |
35346
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1386 if ui.verbose: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1387 fm.plain(b' config default') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1388 fm.plain(b'\n') |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1389 for fv in upgrade.allformatvariant: |
35386
c0b6fa74e007
debugformat: flush formatter output per item
Yuya Nishihara <yuya@tcha.org>
parents:
35348
diff
changeset
|
1390 fm.startitem() |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1391 repovalue = fv.fromrepo(repo) |
35346
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1392 configvalue = fv.fromconfig(repo) |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1393 |
35347
bd326f3e0e14
debugformat: update label depending on value difference
Boris Feld <boris.feld@octobus.net>
parents:
35346
diff
changeset
|
1394 if repovalue != configvalue: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1395 namelabel = b'formatvariant.name.mismatchconfig' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1396 repolabel = b'formatvariant.repo.mismatchconfig' |
35347
bd326f3e0e14
debugformat: update label depending on value difference
Boris Feld <boris.feld@octobus.net>
parents:
35346
diff
changeset
|
1397 elif repovalue != fv.default: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1398 namelabel = b'formatvariant.name.mismatchdefault' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1399 repolabel = b'formatvariant.repo.mismatchdefault' |
35347
bd326f3e0e14
debugformat: update label depending on value difference
Boris Feld <boris.feld@octobus.net>
parents:
35346
diff
changeset
|
1400 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1401 namelabel = b'formatvariant.name.uptodate' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1402 repolabel = b'formatvariant.repo.uptodate' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1403 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1404 fm.write(b'name', makeformatname(fv.name), fv.name, label=namelabel) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1405 fm.write(b'repo', b' %3s', formatvalue(repovalue), label=repolabel) |
35347
bd326f3e0e14
debugformat: update label depending on value difference
Boris Feld <boris.feld@octobus.net>
parents:
35346
diff
changeset
|
1406 if fv.default != configvalue: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1407 configlabel = b'formatvariant.config.special' |
35347
bd326f3e0e14
debugformat: update label depending on value difference
Boris Feld <boris.feld@octobus.net>
parents:
35346
diff
changeset
|
1408 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1409 configlabel = b'formatvariant.config.default' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1410 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1411 ui.verbose, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1412 b'config', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1413 b' %6s', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1414 formatvalue(configvalue), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1415 label=configlabel, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1416 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1417 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1418 ui.verbose, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1419 b'default', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1420 b' %7s', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1421 formatvalue(fv.default), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1422 label=b'formatvariant.default', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1423 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1424 fm.plain(b'\n') |
35386
c0b6fa74e007
debugformat: flush formatter output per item
Yuya Nishihara <yuya@tcha.org>
parents:
35348
diff
changeset
|
1425 fm.end() |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1426 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1427 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1428 @command(b'debugfsinfo', [], _(b'[PATH]'), norepo=True) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1429 def debugfsinfo(ui, path=b"."): |
30534
86ebd2f61c31
debugcommands: move 'debugfsinfo' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30533
diff
changeset
|
1430 """show information detected about current filesystem""" |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1431 ui.writenoi18n(b'path: %s\n' % path) |
43094
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1432 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1433 b'mounted on: %s\n' % (util.getfsmountpoint(path) or b'(unknown)') |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1434 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1435 ui.writenoi18n(b'exec: %s\n' % (util.checkexec(path) and b'yes' or b'no')) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1436 ui.writenoi18n(b'fstype: %s\n' % (util.getfstype(path) or b'(unknown)')) |
43094
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1437 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1438 b'symlink: %s\n' % (util.checklink(path) and b'yes' or b'no') |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1439 ) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1440 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1441 b'hardlink: %s\n' % (util.checknlink(path) and b'yes' or b'no') |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1442 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1443 casesensitive = b'(unknown)' |
31639
35738db2037a
debugfsinfo: improve case-sensitive testing
Jun Wu <quark@fb.com>
parents:
31638
diff
changeset
|
1444 try: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1445 with pycompat.namedtempfile(prefix=b'.debugfsinfo', dir=path) as f: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1446 casesensitive = util.fscasesensitive(f.name) and b'yes' or b'no' |
31639
35738db2037a
debugfsinfo: improve case-sensitive testing
Jun Wu <quark@fb.com>
parents:
31638
diff
changeset
|
1447 except OSError: |
35738db2037a
debugfsinfo: improve case-sensitive testing
Jun Wu <quark@fb.com>
parents:
31638
diff
changeset
|
1448 pass |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1449 ui.writenoi18n(b'case-sensitive: %s\n' % casesensitive) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1450 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1451 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1452 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1453 b'debuggetbundle', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1454 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1455 (b'H', b'head', [], _(b'id of head node'), _(b'ID')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1456 (b'C', b'common', [], _(b'id of common node'), _(b'ID')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1457 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1458 b't', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1459 b'type', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1460 b'bzip2', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1461 _(b'bundle compression type to use'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1462 _(b'TYPE'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1463 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1464 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1465 _(b'REPO FILE [-H|-C ID]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1466 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1467 ) |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1468 def debuggetbundle(ui, repopath, bundlepath, head=None, common=None, **opts): |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1469 """retrieves a bundle from a repo |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1470 |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1471 Every ID must be a full-length hex node id string. Saves the bundle to the |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1472 given file. |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1473 """ |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
1474 opts = pycompat.byteskwargs(opts) |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1475 repo = hg.peer(ui, opts, repopath) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1476 if not repo.capable(b'getbundle'): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1477 raise error.Abort(b"getbundle() not supported by target repository") |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1478 args = {} |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1479 if common: |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
1480 args['common'] = [bin(s) for s in common] |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1481 if head: |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
1482 args['heads'] = [bin(s) for s in head] |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1483 # TODO: get desired bundlecaps from command line. |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
1484 args['bundlecaps'] = None |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1485 bundle = repo.getbundle(b'debug', **args) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1486 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1487 bundletype = opts.get(b'type', b'bzip2').lower() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1488 btypes = { |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1489 b'none': b'HG10UN', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1490 b'bzip2': b'HG10BZ', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1491 b'gzip': b'HG10GZ', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1492 b'bundle2': b'HG20', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1493 } |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1494 bundletype = btypes.get(bundletype) |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1495 if bundletype not in bundle2.bundletypes: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1496 raise error.Abort(_(b'unknown bundle type specified with --type')) |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1497 bundle2.writebundle(ui, bundle, bundlepath, bundletype) |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1498 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1499 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1500 @command(b'debugignore', [], b'[FILE]') |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1501 def debugignore(ui, repo, *files, **opts): |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1502 """display the combined ignore pattern and information about ignored files |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1503 |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1504 With no argument display the combined ignore pattern. |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1505 |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1506 Given space separated file names, shows if the given file is ignored and |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1507 if so, show the ignore rule (file and line number) that matched it. |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1508 """ |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1509 ignore = repo.dirstate._ignore |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1510 if not files: |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1511 # Show all the patterns |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1512 ui.write(b"%s\n" % pycompat.byterepr(ignore)) |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1513 else: |
33507
e9672de52a23
debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents:
33493
diff
changeset
|
1514 m = scmutil.match(repo[None], pats=files) |
41647
be8741d42836
debugignore: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com>
parents:
41529
diff
changeset
|
1515 uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) |
33507
e9672de52a23
debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents:
33493
diff
changeset
|
1516 for f in m.files(): |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1517 nf = util.normpath(f) |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1518 ignored = None |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1519 ignoredata = None |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1520 if nf != b'.': |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1521 if ignore(nf): |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1522 ignored = nf |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1523 ignoredata = repo.dirstate._ignorefileandline(nf) |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1524 else: |
43677
0b7733719d21
utils: move finddirs() to pathutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
43554
diff
changeset
|
1525 for p in pathutil.finddirs(nf): |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1526 if ignore(p): |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1527 ignored = p |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1528 ignoredata = repo.dirstate._ignorefileandline(p) |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1529 break |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1530 if ignored: |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1531 if ignored == nf: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1532 ui.write(_(b"%s is ignored\n") % uipathfn(f)) |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1533 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1534 ui.write( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1535 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1536 b"%s is ignored because of " |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1537 b"containing directory %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1538 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1539 % (uipathfn(f), ignored) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1540 ) |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1541 ignorefile, lineno, line = ignoredata |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1542 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1543 _(b"(ignore rule in %s, line %d: '%s')\n") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1544 % (ignorefile, lineno, line) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1545 ) |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1546 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1547 ui.write(_(b"%s is not ignored\n") % uipathfn(f)) |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1548 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1549 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1550 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1551 b'debugindex', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1552 cmdutil.debugrevlogopts + cmdutil.formatteropts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1553 _(b'-c|-m|FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1554 ) |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1555 def debugindex(ui, repo, file_=None, **opts): |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1556 """dump index data for a storage primitive""" |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
1557 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1558 store = cmdutil.openstorage(repo, b'debugindex', file_, opts) |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1559 |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1560 if ui.debugflag: |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1561 shortfn = hex |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1562 else: |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1563 shortfn = short |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1564 |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1565 idlen = 12 |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1566 for i in store: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1567 idlen = len(shortfn(store.node(i))) |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1568 break |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1569 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1570 fm = ui.formatter(b'debugindex', opts) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1571 fm.plain( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1572 b' rev linkrev %s %s p2\n' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1573 % (b'nodeid'.ljust(idlen), b'p1'.ljust(idlen)) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1574 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1575 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1576 for rev in store: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1577 node = store.node(rev) |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1578 parents = store.parents(node) |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1579 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1580 fm.startitem() |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1581 fm.write(b'rev', b'%6d ', rev) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1582 fm.write(b'linkrev', b'%7d ', store.linkrev(rev)) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1583 fm.write(b'node', b'%s ', shortfn(node)) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1584 fm.write(b'p1', b'%s ', shortfn(parents[0])) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1585 fm.write(b'p2', b'%s', shortfn(parents[1])) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1586 fm.plain(b'\n') |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1587 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1588 fm.end() |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1589 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1590 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1591 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1592 b'debugindexdot', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1593 cmdutil.debugrevlogopts, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1594 _(b'-c|-m|FILE'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1595 optionalrepo=True, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1596 ) |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1597 def debugindexdot(ui, repo, file_=None, **opts): |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1598 """dump an index DAG as a graphviz dot file""" |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
1599 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1600 r = cmdutil.openstorage(repo, b'debugindexdot', file_, opts) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1601 ui.writenoi18n(b"digraph G {\n") |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1602 for i in r: |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1603 node = r.node(i) |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1604 pp = r.parents(node) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1605 ui.write(b"\t%d -> %d\n" % (r.rev(pp[0]), i)) |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1606 if pp[1] != nullid: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1607 ui.write(b"\t%d -> %d\n" % (r.rev(pp[1]), i)) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1608 ui.write(b"}\n") |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1609 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1610 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1611 @command(b'debugindexstats', []) |
39981
d71e0ba34d9b
debugcommands: add a debugindexstats command
Martin von Zweigbergk <martinvonz@google.com>
parents:
39957
diff
changeset
|
1612 def debugindexstats(ui, repo): |
d71e0ba34d9b
debugcommands: add a debugindexstats command
Martin von Zweigbergk <martinvonz@google.com>
parents:
39957
diff
changeset
|
1613 """show stats related to the changelog index""" |
d71e0ba34d9b
debugcommands: add a debugindexstats command
Martin von Zweigbergk <martinvonz@google.com>
parents:
39957
diff
changeset
|
1614 repo.changelog.shortest(nullid, 1) |
40365
4f37af86d5d5
debugcommands: avoid stack trace from debugindexstats in pure mode
Martin von Zweigbergk <martinvonz@google.com>
parents:
40174
diff
changeset
|
1615 index = repo.changelog.index |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1616 if not util.safehasattr(index, b'stats'): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1617 raise error.Abort(_(b'debugindexstats only works with native code')) |
40365
4f37af86d5d5
debugcommands: avoid stack trace from debugindexstats in pure mode
Martin von Zweigbergk <martinvonz@google.com>
parents:
40174
diff
changeset
|
1618 for k, v in sorted(index.stats().items()): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1619 ui.write(b'%s: %d\n' % (k, v)) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1620 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1621 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1622 @command(b'debuginstall', [] + cmdutil.formatteropts, b'', norepo=True) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1623 def debuginstall(ui, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1624 """test Mercurial installation |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1625 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1626 Returns 0 on success. |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1627 """ |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
1628 opts = pycompat.byteskwargs(opts) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1629 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1630 problems = 0 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1631 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1632 fm = ui.formatter(b'debuginstall', opts) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1633 fm.startitem() |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1634 |
45100
d50d922ca02b
debuginstall: don't translate encoding messages
Yuya Nishihara <yuya@tcha.org>
parents:
44929
diff
changeset
|
1635 # encoding might be unknown or wrong. don't translate these messages. |
d50d922ca02b
debuginstall: don't translate encoding messages
Yuya Nishihara <yuya@tcha.org>
parents:
44929
diff
changeset
|
1636 fm.write(b'encoding', b"checking encoding (%s)...\n", encoding.encoding) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1637 err = None |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1638 try: |
34144
902219a99901
debuginstall: use codecs.lookup() to detect invalid encoding
Yuya Nishihara <yuya@tcha.org>
parents:
34135
diff
changeset
|
1639 codecs.lookup(pycompat.sysstr(encoding.encoding)) |
902219a99901
debuginstall: use codecs.lookup() to detect invalid encoding
Yuya Nishihara <yuya@tcha.org>
parents:
34135
diff
changeset
|
1640 except LookupError as inst: |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
1641 err = stringutil.forcebytestr(inst) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1642 problems += 1 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1643 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1644 err, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1645 b'encodingerror', |
45100
d50d922ca02b
debuginstall: don't translate encoding messages
Yuya Nishihara <yuya@tcha.org>
parents:
44929
diff
changeset
|
1646 b" %s\n (check that your locale is properly set)\n", |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1647 err, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1648 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1649 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1650 # Python |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1651 pythonlib = None |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1652 if util.safehasattr(os, '__file__'): |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1653 pythonlib = os.path.dirname(pycompat.fsencode(os.__file__)) |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1654 elif getattr(sys, 'oxidized', False): |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1655 pythonlib = pycompat.sysexecutable |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1656 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1657 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1658 b'pythonexe', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1659 _(b"checking Python executable (%s)\n"), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1660 pycompat.sysexecutable or _(b"unknown"), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1661 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1662 fm.write( |
44230
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1663 b'pythonimplementation', |
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1664 _(b"checking Python implementation (%s)\n"), |
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1665 pycompat.sysbytes(platform.python_implementation()), |
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1666 ) |
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1667 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1668 b'pythonver', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1669 _(b"checking Python version (%s)\n"), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1670 (b"%d.%d.%d" % sys.version_info[:3]), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1671 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1672 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1673 b'pythonlib', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1674 _(b"checking Python lib (%s)...\n"), |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1675 pythonlib or _(b"unknown"), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1676 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1677 |
44481
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1678 try: |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1679 from . import rustext |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1680 |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1681 rustext.__doc__ # trigger lazy import |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1682 except ImportError: |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1683 rustext = None |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1684 |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1685 security = set(sslutil.supportedprotocols) |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1686 if sslutil.hassni: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1687 security.add(b'sni') |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1688 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1689 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1690 b'pythonsecurity', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1691 _(b"checking Python security support (%s)\n"), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1692 fm.formatlist(sorted(security), name=b'protocol', fmt=b'%s', sep=b','), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1693 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1694 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1695 # These are warnings, not errors. So don't increment problem count. This |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1696 # may change in the future. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1697 if b'tls1.2' not in security: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1698 fm.plain( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1699 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1700 b' TLS 1.2 not supported by Python install; ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1701 b'network connections lack modern security\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1702 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1703 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1704 if b'sni' not in security: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1705 fm.plain( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1706 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1707 b' SNI not supported by Python install; may have ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1708 b'connectivity issues with some servers\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1709 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1710 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1711 |
44481
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1712 fm.plain( |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1713 _( |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1714 b"checking Rust extensions (%s)\n" |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1715 % (b'missing' if rustext is None else b'installed') |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1716 ), |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1717 ) |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1718 |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1719 # TODO print CA cert info |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1720 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1721 # hg version |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1722 hgver = util.version() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1723 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1724 b'hgver', _(b"checking Mercurial version (%s)\n"), hgver.split(b'+')[0] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1725 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1726 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1727 b'hgverextra', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1728 _(b"checking Mercurial custom build (%s)\n"), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1729 b'+'.join(hgver.split(b'+')[1:]), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1730 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1731 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1732 # compiled modules |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1733 hgmodules = None |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1734 if util.safehasattr(sys.modules[__name__], '__file__'): |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1735 hgmodules = os.path.dirname(pycompat.fsencode(__file__)) |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1736 elif getattr(sys, 'oxidized', False): |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1737 hgmodules = pycompat.sysexecutable |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1738 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1739 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1740 b'hgmodulepolicy', _(b"checking module policy (%s)\n"), policy.policy |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1741 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1742 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1743 b'hgmodules', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1744 _(b"checking installed modules (%s)...\n"), |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1745 hgmodules or _(b"unknown"), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1746 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1747 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1748 rustandc = policy.policy in (b'rust+c', b'rust+c-allow') |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1749 rustext = rustandc # for now, that's the only case |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1750 cext = policy.policy in (b'c', b'allow') or rustandc |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1751 nopure = cext or rustext |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1752 if nopure: |
32249
85dc5a25f1fc
debuginstall: check C extensions only if they are loadable per policy
Yuya Nishihara <yuya@tcha.org>
parents:
31864
diff
changeset
|
1753 err = None |
85dc5a25f1fc
debuginstall: check C extensions only if they are loadable per policy
Yuya Nishihara <yuya@tcha.org>
parents:
31864
diff
changeset
|
1754 try: |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1755 if cext: |
43743
a9b14ef701d1
debugcommands: suppress import errors for pytype
Augie Fackler <augie@google.com>
parents:
43727
diff
changeset
|
1756 from .cext import ( # pytype: disable=import-error |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1757 base85, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1758 bdiff, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1759 mpatch, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1760 osutil, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1761 ) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1762 |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1763 # quiet pyflakes |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1764 dir(bdiff), dir(mpatch), dir(base85), dir(osutil) |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1765 if rustext: |
43743
a9b14ef701d1
debugcommands: suppress import errors for pytype
Augie Fackler <augie@google.com>
parents:
43727
diff
changeset
|
1766 from .rustext import ( # pytype: disable=import-error |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1767 ancestor, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1768 dirstate, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
1769 ) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1770 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1771 dir(ancestor), dir(dirstate) # quiet pyflakes |
32249
85dc5a25f1fc
debuginstall: check C extensions only if they are loadable per policy
Yuya Nishihara <yuya@tcha.org>
parents:
31864
diff
changeset
|
1772 except Exception as inst: |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
1773 err = stringutil.forcebytestr(inst) |
32249
85dc5a25f1fc
debuginstall: check C extensions only if they are loadable per policy
Yuya Nishihara <yuya@tcha.org>
parents:
31864
diff
changeset
|
1774 problems += 1 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1775 fm.condwrite(err, b'extensionserror', b" %s\n", err) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1776 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1777 compengines = util.compengines._engines.values() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1778 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1779 b'compengines', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1780 _(b'checking registered compression engines (%s)\n'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1781 fm.formatlist( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1782 sorted(e.name() for e in compengines), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1783 name=b'compengine', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1784 fmt=b'%s', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1785 sep=b', ', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1786 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1787 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1788 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1789 b'compenginesavail', |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
1790 _(b'checking available compression engines (%s)\n'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1791 fm.formatlist( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1792 sorted(e.name() for e in compengines if e.available()), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1793 name=b'compengine', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1794 fmt=b'%s', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1795 sep=b', ', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1796 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1797 ) |
42041
3e47d1ec9da5
util: extract compression code in `mercurial.utils.compression`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42035
diff
changeset
|
1798 wirecompengines = compression.compengines.supportedwireengines( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1799 compression.SERVERROLE |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1800 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1801 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1802 b'compenginesserver', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1803 _( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1804 b'checking available compression engines ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1805 b'for wire protocol (%s)\n' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1806 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1807 fm.formatlist( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1808 [e.name() for e in wirecompengines if e.wireprotosupport()], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1809 name=b'compengine', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1810 fmt=b'%s', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1811 sep=b', ', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1812 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1813 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1814 re2 = b'missing' |
35452
8251c4c4abdc
debuginstall: add a line about re2 availability
Boris Feld <boris.feld@octobus.net>
parents:
35431
diff
changeset
|
1815 if util._re2: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1816 re2 = b'available' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1817 fm.plain(_(b'checking "re2" regexp engine (%s)\n') % re2) |
35452
8251c4c4abdc
debuginstall: add a line about re2 availability
Boris Feld <boris.feld@octobus.net>
parents:
35431
diff
changeset
|
1818 fm.data(re2=bool(util._re2)) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1819 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1820 # templates |
45235
91aa9bba3dc9
templater: make templatepaths() return a single path, or None
Martin von Zweigbergk <martinvonz@google.com>
parents:
45149
diff
changeset
|
1821 p = templater.templatedir() |
45247
d5ccc059fbcd
templater: handle None returned from templatedir()
Martin von Zweigbergk <martinvonz@google.com>
parents:
45235
diff
changeset
|
1822 fm.write(b'templatedirs', b'checking templates (%s)...\n', p or b'') |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1823 fm.condwrite(not p, b'', _(b" no template directories found\n")) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1824 if p: |
45341
4aa484efc926
templater: add exception-raising version of open_template()
Martin von Zweigbergk <martinvonz@google.com>
parents:
45330
diff
changeset
|
1825 (m, fp) = templater.try_open_template(b"map-cmdline.default") |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1826 if m: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1827 # template found, check if it is working |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1828 err = None |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1829 try: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1830 templater.templater.frommapfile(m) |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1831 except Exception as inst: |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
1832 err = stringutil.forcebytestr(inst) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1833 p = None |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1834 fm.condwrite(err, b'defaulttemplateerror', b" %s\n", err) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1835 else: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1836 p = None |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1837 fm.condwrite( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1838 p, b'defaulttemplate', _(b"checking default template (%s)\n"), m |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1839 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1840 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1841 not m, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1842 b'defaulttemplatenotfound', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1843 _(b" template '%s' not found\n"), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1844 b"default", |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1845 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1846 if not p: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1847 problems += 1 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1848 fm.condwrite( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1849 not p, b'', _(b" (templates seem to have been installed incorrectly)\n") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1850 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1851 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1852 # editor |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1853 editor = ui.geteditor() |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1854 editor = util.expandpath(editor) |
37123
a8a902d7176e
procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37087
diff
changeset
|
1855 editorbin = procutil.shellsplit(editor)[0] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1856 fm.write(b'editor', _(b"checking commit editor... (%s)\n"), editorbin) |
37123
a8a902d7176e
procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37087
diff
changeset
|
1857 cmdpath = procutil.findexe(editorbin) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1858 fm.condwrite( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1859 not cmdpath and editor == b'vi', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1860 b'vinotfound', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1861 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1862 b" No commit editor set and can't find %s in PATH\n" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1863 b" (specify a commit editor in your configuration" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1864 b" file)\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1865 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1866 not cmdpath and editor == b'vi' and editorbin, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1867 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1868 fm.condwrite( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1869 not cmdpath and editor != b'vi', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1870 b'editornotfound', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1871 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1872 b" Can't find editor '%s' in PATH\n" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1873 b" (specify a commit editor in your configuration" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1874 b" file)\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1875 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1876 not cmdpath and editorbin, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1877 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1878 if not cmdpath and editor != b'vi': |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1879 problems += 1 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1880 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1881 # check username |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1882 username = None |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1883 err = None |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1884 try: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1885 username = ui.username() |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1886 except error.Abort as e: |
45682
d2e1dcd4490d
errors: name arguments to Abort constructor
Martin von Zweigbergk <martinvonz@google.com>
parents:
45665
diff
changeset
|
1887 err = e.message |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1888 problems += 1 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1889 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1890 fm.condwrite( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1891 username, b'username', _(b"checking username (%s)\n"), username |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1892 ) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1893 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1894 err, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1895 b'usernameerror', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1896 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1897 b"checking username...\n %s\n" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1898 b" (specify a username in your configuration file)\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1899 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1900 err, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1901 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1902 |
42683
7f1df7019497
debugcommands: add support for extensions adding their own debug info
Augie Fackler <augie@google.com>
parents:
42580
diff
changeset
|
1903 for name, mod in extensions.extensions(): |
7f1df7019497
debugcommands: add support for extensions adding their own debug info
Augie Fackler <augie@google.com>
parents:
42580
diff
changeset
|
1904 handler = getattr(mod, 'debuginstall', None) |
7f1df7019497
debugcommands: add support for extensions adding their own debug info
Augie Fackler <augie@google.com>
parents:
42580
diff
changeset
|
1905 if handler is not None: |
7f1df7019497
debugcommands: add support for extensions adding their own debug info
Augie Fackler <augie@google.com>
parents:
42580
diff
changeset
|
1906 problems += handler(ui, fm) |
7f1df7019497
debugcommands: add support for extensions adding their own debug info
Augie Fackler <augie@google.com>
parents:
42580
diff
changeset
|
1907 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1908 fm.condwrite(not problems, b'', _(b"no problems detected\n")) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1909 if not problems: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1910 fm.data(problems=problems) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1911 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1912 problems, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1913 b'problems', |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
1914 _(b"%d problems detected, please check your install!\n"), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1915 problems, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1916 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1917 fm.end() |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1918 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1919 return problems |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1920 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1921 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1922 @command(b'debugknown', [], _(b'REPO ID...'), norepo=True) |
30939
e1fa5fe9f9d4
debugcommands: move 'debugknown' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30938
diff
changeset
|
1923 def debugknown(ui, repopath, *ids, **opts): |
e1fa5fe9f9d4
debugcommands: move 'debugknown' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30938
diff
changeset
|
1924 """test whether node ids are known to a repo |
e1fa5fe9f9d4
debugcommands: move 'debugknown' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30938
diff
changeset
|
1925 |
e1fa5fe9f9d4
debugcommands: move 'debugknown' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30938
diff
changeset
|
1926 Every ID must be a full-length hex node id string. Returns a list of 0s |
e1fa5fe9f9d4
debugcommands: move 'debugknown' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30938
diff
changeset
|
1927 and 1s indicating unknown/known. |
e1fa5fe9f9d4
debugcommands: move 'debugknown' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30938
diff
changeset
|
1928 """ |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
1929 opts = pycompat.byteskwargs(opts) |
30939
e1fa5fe9f9d4
debugcommands: move 'debugknown' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30938
diff
changeset
|
1930 repo = hg.peer(ui, opts, repopath) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1931 if not repo.capable(b'known'): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1932 raise error.Abort(b"known() not supported by target repository") |
30939
e1fa5fe9f9d4
debugcommands: move 'debugknown' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30938
diff
changeset
|
1933 flags = repo.known([bin(s) for s in ids]) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1934 ui.write(b"%s\n" % (b"".join([f and b"1" or b"0" for f in flags]))) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1935 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1936 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1937 @command(b'debuglabelcomplete', [], _(b'LABEL...')) |
30955
e46533c3201e
debugcommands: move 'debuglabelcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30939
diff
changeset
|
1938 def debuglabelcomplete(ui, repo, *args): |
e46533c3201e
debugcommands: move 'debuglabelcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30939
diff
changeset
|
1939 '''backwards compatibility with old bash completion scripts (DEPRECATED)''' |
31411
ea0395eec67b
debuglabelcomplete: fix to call debugnamecomplete in new location
Kyle Lippincott <spectral@google.com>
parents:
31249
diff
changeset
|
1940 debugnamecomplete(ui, repo, *args) |
30955
e46533c3201e
debugcommands: move 'debuglabelcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30939
diff
changeset
|
1941 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1942 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1943 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1944 b'debuglocks', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1945 [ |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
1946 (b'L', b'force-free-lock', None, _(b'free the store lock (DANGEROUS)')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1947 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1948 b'W', |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
1949 b'force-free-wlock', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1950 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1951 _(b'free the working state lock (DANGEROUS)'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1952 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1953 (b's', b'set-lock', None, _(b'set the store lock until stopped')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1954 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1955 b'S', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1956 b'set-wlock', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1957 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1958 _(b'set the working state lock until stopped'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1959 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1960 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1961 _(b'[OPTION]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1962 ) |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1963 def debuglocks(ui, repo, **opts): |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1964 """show or modify state of locks |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1965 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1966 By default, this command will show which locks are held. This |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1967 includes the user and process holding the lock, the amount of time |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1968 the lock has been held, and the machine name where the process is |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1969 running if it's not local. |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1970 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1971 Locks protect the integrity of Mercurial's data, so should be |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1972 treated with care. System crashes or other interruptions may cause |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1973 locks to not be properly released, though Mercurial will usually |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1974 detect and remove such stale locks automatically. |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1975 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1976 However, detecting stale locks may not always be possible (for |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1977 instance, on a shared filesystem). Removing locks may also be |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1978 blocked by filesystem permissions. |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1979 |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
1980 Setting a lock will prevent other commands from changing the data. |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
1981 The command will wait until an interruption (SIGINT, SIGTERM, ...) occurs. |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
1982 The set locks are removed when the command exits. |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
1983 |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1984 Returns 0 if no locks are held. |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1985 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1986 """ |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1987 |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
1988 if opts.get('force_free_lock'): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1989 repo.svfs.unlink(b'lock') |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
1990 if opts.get('force_free_wlock'): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1991 repo.vfs.unlink(b'wlock') |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
1992 if opts.get('force_free_lock') or opts.get('force_free_wlock'): |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1993 return 0 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
1994 |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
1995 locks = [] |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
1996 try: |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
1997 if opts.get('set_wlock'): |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
1998 try: |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
1999 locks.append(repo.wlock(False)) |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2000 except error.LockHeld: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2001 raise error.Abort(_(b'wlock is already held')) |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2002 if opts.get('set_lock'): |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2003 try: |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2004 locks.append(repo.lock(False)) |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2005 except error.LockHeld: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2006 raise error.Abort(_(b'lock is already held')) |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2007 if len(locks): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2008 ui.promptchoice(_(b"ready to release the lock (y)? $$ &Yes")) |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2009 return 0 |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2010 finally: |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2011 release(*locks) |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2012 |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2013 now = time.time() |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2014 held = 0 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2015 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2016 def report(vfs, name, method): |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2017 # this causes stale locks to get reaped for more accurate reporting |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2018 try: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2019 l = method(False) |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2020 except error.LockHeld: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2021 l = None |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2022 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2023 if l: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2024 l.release() |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2025 else: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2026 try: |
36789
ffa3026d4196
cleanup: use stat_result[stat.ST_MTIME] instead of stat_result.st_mtime
Augie Fackler <augie@google.com>
parents:
36786
diff
changeset
|
2027 st = vfs.lstat(name) |
ffa3026d4196
cleanup: use stat_result[stat.ST_MTIME] instead of stat_result.st_mtime
Augie Fackler <augie@google.com>
parents:
36786
diff
changeset
|
2028 age = now - st[stat.ST_MTIME] |
ffa3026d4196
cleanup: use stat_result[stat.ST_MTIME] instead of stat_result.st_mtime
Augie Fackler <augie@google.com>
parents:
36786
diff
changeset
|
2029 user = util.username(st.st_uid) |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2030 locker = vfs.readlock(name) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2031 if b":" in locker: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2032 host, pid = locker.split(b':') |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2033 if host == socket.gethostname(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2034 locker = b'user %s, process %s' % (user or b'None', pid) |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2035 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2036 locker = b'user %s, process %s, host %s' % ( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2037 user or b'None', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2038 pid, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2039 host, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2040 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
2041 ui.writenoi18n(b"%-6s %s (%ds)\n" % (name + b":", locker, age)) |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2042 return 1 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2043 except OSError as e: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2044 if e.errno != errno.ENOENT: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2045 raise |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2046 |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
2047 ui.writenoi18n(b"%-6s free\n" % (name + b":")) |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2048 return 0 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2049 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2050 held += report(repo.svfs, b"lock", repo.lock) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2051 held += report(repo.vfs, b"wlock", repo.wlock) |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2052 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2053 return held |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2054 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2055 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2056 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2057 b'debugmanifestfulltextcache', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2058 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2059 (b'', b'clear', False, _(b'clear the cache')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2060 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2061 b'a', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2062 b'add', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2063 [], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2064 _(b'add the given manifest nodes to the cache'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2065 _(b'NODE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2066 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2067 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2068 b'', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2069 ) |
41963
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2070 def debugmanifestfulltextcache(ui, repo, add=(), **opts): |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2071 """show, clear or amend the contents of the manifest fulltext cache""" |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2072 |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2073 def getcache(): |
39272
73cf21b2e8a6
manifest: add getstorage() to manifestlog and use it globally
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39196
diff
changeset
|
2074 r = repo.manifestlog.getstorage(b'') |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2075 try: |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2076 return r._fulltextcache |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2077 except AttributeError: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2078 msg = _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2079 b"Current revlog implementation doesn't appear to have a " |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2080 b"manifest fulltext cache\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2081 ) |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2082 raise error.Abort(msg) |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2083 |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2084 if opts.get('clear'): |
41969
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41964
diff
changeset
|
2085 with repo.wlock(): |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2086 cache = getcache() |
41952
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41948
diff
changeset
|
2087 cache.clear(clear_persisted_data=True) |
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41948
diff
changeset
|
2088 return |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2089 |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2090 if add: |
41969
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41964
diff
changeset
|
2091 with repo.wlock(): |
41963
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2092 m = repo.manifestlog |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2093 store = m.getstorage(b'') |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2094 for n in add: |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2095 try: |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2096 manifest = m[store.lookup(n)] |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2097 except error.LookupError as e: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2098 raise error.Abort(e, hint=b"Check your manifest node id") |
41963
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2099 manifest.read() # stores revisision in cache too |
41948
1e75311d78f7
manifestcache: do not display data when using --add
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41947
diff
changeset
|
2100 return |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2101 |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2102 cache = getcache() |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2103 if not len(cache): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2104 ui.write(_(b'cache empty\n')) |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2105 else: |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2106 ui.write( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2107 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2108 b'cache contains %d manifest entries, in order of most to ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2109 b'least recent:\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2110 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2111 % (len(cache),) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2112 ) |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2113 totalsize = 0 |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2114 for nodeid in cache: |
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2115 # Use cache.get to not update the LRU order |
41964
e3307243d188
manifestcache: stop altering the lru cache order while displaying it
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41963
diff
changeset
|
2116 data = cache.peek(nodeid) |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2117 size = len(data) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2118 totalsize += size + 24 # 20 bytes nodeid, 4 bytes size |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2119 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2120 _(b'id: %s, size %s\n') % (hex(nodeid), util.bytecount(size)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2121 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2122 ondisk = cache._opener.stat(b'manifestfulltextcache').st_size |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2123 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2124 _(b'total cache data size %s, on-disk %s\n') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2125 % (util.bytecount(totalsize), util.bytecount(ondisk)) |
41947
fbee66c90cef
manifestcache: only lock the repository if the debug command touch the cache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41946
diff
changeset
|
2126 ) |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2127 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2128 |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2129 @command(b'debugmergestate', [] + cmdutil.templateopts, b'') |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2130 def debugmergestate(ui, repo, *args, **opts): |
30956
8de38479d60b
debugcommands: move 'debugmergestate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30955
diff
changeset
|
2131 """print merge state |
8de38479d60b
debugcommands: move 'debugmergestate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30955
diff
changeset
|
2132 |
8de38479d60b
debugcommands: move 'debugmergestate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30955
diff
changeset
|
2133 Use --verbose to print out information about whether v1 or v2 merge state |
8de38479d60b
debugcommands: move 'debugmergestate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30955
diff
changeset
|
2134 was chosen.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2135 |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2136 if ui.verbose: |
44915
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
44662
diff
changeset
|
2137 ms = mergestatemod.mergestate(repo) |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2138 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2139 # sort so that reasonable information is on top |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2140 v1records = ms._readrecordsv1() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2141 v2records = ms._readrecordsv2() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2142 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2143 if not v1records and not v2records: |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2144 pass |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2145 elif not v2records: |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2146 ui.writenoi18n(b'no version 2 merge state\n') |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2147 elif ms._v1v2match(v1records, v2records): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2148 ui.writenoi18n(b'v1 and v2 states match: using v2\n') |
30956
8de38479d60b
debugcommands: move 'debugmergestate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30955
diff
changeset
|
2149 else: |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2150 ui.writenoi18n(b'v1 and v2 states mismatch: using v1\n') |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2151 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2152 opts = pycompat.byteskwargs(opts) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2153 if not opts[b'template']: |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2154 opts[b'template'] = ( |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2155 b'{if(commits, "", "no merge state found\n")}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2156 b'{commits % "{name}{if(label, " ({label})")}: {node}\n"}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2157 b'{files % "file: {path} (state \\"{state}\\")\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2158 b'{if(local_path, "' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2159 b' local path: {local_path} (hash {local_key}, flags \\"{local_flags}\\")\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2160 b' ancestor path: {ancestor_path} (node {ancestor_node})\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2161 b' other path: {other_path} (node {other_node})\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2162 b'")}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2163 b'{if(rename_side, "' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2164 b' rename side: {rename_side}\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2165 b' renamed path: {renamed_path}\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2166 b'")}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2167 b'{extras % " extra: {key} = {value}\n"}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2168 b'"}' |
45456
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2169 b'{extras % "extra: {file} ({key} = {value})\n"}' |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2170 ) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2171 |
44915
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
44662
diff
changeset
|
2172 ms = mergestatemod.mergestate.read(repo) |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2173 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2174 fm = ui.formatter(b'debugmergestate', opts) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2175 fm.startitem() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2176 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2177 fm_commits = fm.nested(b'commits') |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2178 if ms.active(): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2179 for name, node, label_index in ( |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2180 (b'local', ms.local, 0), |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2181 (b'other', ms.other, 1), |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2182 ): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2183 fm_commits.startitem() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2184 fm_commits.data(name=name) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2185 fm_commits.data(node=hex(node)) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2186 if ms._labels and len(ms._labels) > label_index: |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2187 fm_commits.data(label=ms._labels[label_index]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2188 fm_commits.end() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2189 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2190 fm_files = fm.nested(b'files') |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2191 if ms.active(): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2192 for f in ms: |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2193 fm_files.startitem() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2194 fm_files.data(path=f) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2195 state = ms._state[f] |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2196 fm_files.data(state=state[0]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2197 if state[0] in ( |
44915
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
44662
diff
changeset
|
2198 mergestatemod.MERGE_RECORD_UNRESOLVED, |
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
44662
diff
changeset
|
2199 mergestatemod.MERGE_RECORD_RESOLVED, |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2200 ): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2201 fm_files.data(local_key=state[1]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2202 fm_files.data(local_path=state[2]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2203 fm_files.data(ancestor_path=state[3]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2204 fm_files.data(ancestor_node=state[4]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2205 fm_files.data(other_path=state[5]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2206 fm_files.data(other_node=state[6]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2207 fm_files.data(local_flags=state[7]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2208 elif state[0] in ( |
44915
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
44662
diff
changeset
|
2209 mergestatemod.MERGE_RECORD_UNRESOLVED_PATH, |
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
44662
diff
changeset
|
2210 mergestatemod.MERGE_RECORD_RESOLVED_PATH, |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2211 ): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2212 fm_files.data(renamed_path=state[1]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2213 fm_files.data(rename_side=state[2]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2214 fm_extras = fm_files.nested(b'extras') |
45457
00e4e97c6bc8
debugmergestate: sort extras before printing
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45456
diff
changeset
|
2215 for k, v in sorted(ms.extras(f).items()): |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2216 fm_extras.startitem() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2217 fm_extras.data(key=k) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2218 fm_extras.data(value=v) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2219 fm_extras.end() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2220 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2221 fm_files.end() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2222 |
45456
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2223 fm_extras = fm.nested(b'extras') |
45715
0428978bca22
mergestate: add `allextras()` to get all extras
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45682
diff
changeset
|
2224 for f, d in sorted(pycompat.iteritems(ms.allextras())): |
45456
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2225 if f in ms: |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2226 # If file is in mergestate, we have already processed it's extras |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2227 continue |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2228 for k, v in pycompat.iteritems(d): |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2229 fm_extras.startitem() |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2230 fm_extras.data(file=f) |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2231 fm_extras.data(key=k) |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2232 fm_extras.data(value=v) |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2233 fm_extras.end() |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2234 |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2235 fm.end() |
30956
8de38479d60b
debugcommands: move 'debugmergestate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30955
diff
changeset
|
2236 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2237 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2238 @command(b'debugnamecomplete', [], _(b'NAME...')) |
30957
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2239 def debugnamecomplete(ui, repo, *args): |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2240 '''complete "names" - tags, open branch names, bookmark names''' |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2241 |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2242 names = set() |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2243 # since we previously only listed open branches, we will handle that |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2244 # specially (after this for loop) |
43106
d783f945a701
py3: finish porting iteritems() to pycompat and remove source transformer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43094
diff
changeset
|
2245 for name, ns in pycompat.iteritems(repo.names): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2246 if name != b'branches': |
30957
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2247 names.update(ns.listnames(repo)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2248 names.update( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2249 tag |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2250 for (tag, heads, tip, closed) in repo.branchmap().iterbranches() |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2251 if not closed |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2252 ) |
30957
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2253 completions = set() |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2254 if not args: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2255 args = [b''] |
30957
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2256 for a in args: |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2257 completions.update(n for n in names if n.startswith(a)) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2258 ui.write(b'\n'.join(sorted(completions))) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2259 ui.write(b'\n') |
30957
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2260 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2261 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2262 @command( |
44350
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
2263 b'debugnodemap', |
44352
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2264 [ |
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2265 ( |
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2266 b'', |
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2267 b'dump-new', |
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2268 False, |
46527
3e3b81b6e7da
debugcommands: s/stdin/stdout in debugnodemap help
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46464
diff
changeset
|
2269 _(b'write a (new) persistent binary nodemap on stdout'), |
44352
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2270 ), |
46527
3e3b81b6e7da
debugcommands: s/stdin/stdout in debugnodemap help
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46464
diff
changeset
|
2271 (b'', b'dump-disk', False, _(b'dump on-disk data on stdout')), |
44361
20e125cdd719
nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44352
diff
changeset
|
2272 ( |
20e125cdd719
nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44352
diff
changeset
|
2273 b'', |
20e125cdd719
nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44352
diff
changeset
|
2274 b'check', |
20e125cdd719
nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44352
diff
changeset
|
2275 False, |
20e125cdd719
nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44352
diff
changeset
|
2276 _(b'check that the data on disk data are correct.'), |
20e125cdd719
nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44352
diff
changeset
|
2277 ), |
44368
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2278 ( |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2279 b'', |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2280 b'metadata', |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2281 False, |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2282 _(b'display the on disk meta data for the nodemap'), |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2283 ), |
44352
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2284 ], |
44350
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
2285 ) |
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
2286 def debugnodemap(ui, repo, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
2287 """write and inspect on disk nodemap""" |
44352
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2288 if opts['dump_new']: |
44350
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
2289 unfi = repo.unfiltered() |
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
2290 cl = unfi.changelog |
44522
febe88a6f7f7
nodemap: use data from the index in debugnodemap --dump-new
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44481
diff
changeset
|
2291 if util.safehasattr(cl.index, "nodemap_data_all"): |
febe88a6f7f7
nodemap: use data from the index in debugnodemap --dump-new
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44481
diff
changeset
|
2292 data = cl.index.nodemap_data_all() |
febe88a6f7f7
nodemap: use data from the index in debugnodemap --dump-new
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44481
diff
changeset
|
2293 else: |
febe88a6f7f7
nodemap: use data from the index in debugnodemap --dump-new
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44481
diff
changeset
|
2294 data = nodemap.persistent_data(cl.index) |
44350
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
2295 ui.write(data) |
44352
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2296 elif opts['dump_disk']: |
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2297 unfi = repo.unfiltered() |
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2298 cl = unfi.changelog |
44366
76a96e3a2bbb
nodemap: keep track of the docket for loaded data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44361
diff
changeset
|
2299 nm_data = nodemap.persisted_data(cl) |
76a96e3a2bbb
nodemap: keep track of the docket for loaded data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44361
diff
changeset
|
2300 if nm_data is not None: |
76a96e3a2bbb
nodemap: keep track of the docket for loaded data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44361
diff
changeset
|
2301 docket, data = nm_data |
44397
f7459da77f23
nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44384
diff
changeset
|
2302 ui.write(data[:]) |
44361
20e125cdd719
nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44352
diff
changeset
|
2303 elif opts['check']: |
20e125cdd719
nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44352
diff
changeset
|
2304 unfi = repo.unfiltered() |
20e125cdd719
nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44352
diff
changeset
|
2305 cl = unfi.changelog |
44366
76a96e3a2bbb
nodemap: keep track of the docket for loaded data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44361
diff
changeset
|
2306 nm_data = nodemap.persisted_data(cl) |
76a96e3a2bbb
nodemap: keep track of the docket for loaded data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44361
diff
changeset
|
2307 if nm_data is not None: |
76a96e3a2bbb
nodemap: keep track of the docket for loaded data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44361
diff
changeset
|
2308 docket, data = nm_data |
76a96e3a2bbb
nodemap: keep track of the docket for loaded data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44361
diff
changeset
|
2309 return nodemap.check_data(ui, cl.index, data) |
44368
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2310 elif opts['metadata']: |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2311 unfi = repo.unfiltered() |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2312 cl = unfi.changelog |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2313 nm_data = nodemap.persisted_data(cl) |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2314 if nm_data is not None: |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2315 docket, data = nm_data |
6614b301ea58
nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44366
diff
changeset
|
2316 ui.write((b"uid: %s\n") % docket.uid) |
44369
e41a164db7a9
nodemap: track the maximum revision tracked in the nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44368
diff
changeset
|
2317 ui.write((b"tip-rev: %d\n") % docket.tip_rev) |
44525
6c906eaedd0d
nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44522
diff
changeset
|
2318 ui.write((b"tip-node: %s\n") % hex(docket.tip_node)) |
44370
8374b69aef75
nodemap: track the total and unused amount of data in the rawdata file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44369
diff
changeset
|
2319 ui.write((b"data-length: %d\n") % docket.data_length) |
8374b69aef75
nodemap: track the total and unused amount of data in the rawdata file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44369
diff
changeset
|
2320 ui.write((b"data-unused: %d\n") % docket.data_unused) |
44639
99ea74cbed74
nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44542
diff
changeset
|
2321 unused_perc = docket.data_unused * 100.0 / docket.data_length |
99ea74cbed74
nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44542
diff
changeset
|
2322 ui.write((b"data-unused: %2.3f%%\n") % unused_perc) |
44350
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
2323 |
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
2324 |
c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44349
diff
changeset
|
2325 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2326 b'debugobsolete', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2327 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2328 (b'', b'flags', 0, _(b'markers flag')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2329 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2330 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2331 b'record-parents', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2332 False, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2333 _(b'record parent information for the precursor'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2334 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2335 (b'r', b'rev', [], _(b'display markers relevant to REV')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2336 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2337 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2338 b'exclusive', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2339 False, |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
2340 _(b'restrict display to markers only relevant to REV'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2341 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2342 (b'', b'index', False, _(b'display index of the marker')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2343 (b'', b'delete', [], _(b'delete markers specified by indices')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2344 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2345 + cmdutil.commitopts2 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2346 + cmdutil.formatteropts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2347 _(b'[OBSOLETED [REPLACEMENT ...]]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2348 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2349 def debugobsolete(ui, repo, precursor=None, *successors, **opts): |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2350 """create arbitrary obsolete marker |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2351 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2352 With no arguments, displays the list of obsolescence markers.""" |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2353 |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
2354 opts = pycompat.byteskwargs(opts) |
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
2355 |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2356 def parsenodeid(s): |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2357 try: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2358 # We do not use revsingle/revrange functions here to accept |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2359 # arbitrary node identifiers, possibly not present in the |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2360 # local repository. |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2361 n = bin(s) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2362 if len(n) != len(nullid): |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2363 raise TypeError() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2364 return n |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2365 except TypeError: |
45889
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2366 raise error.InputError( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2367 b'changeset references must be full hexadecimal ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2368 b'node identifiers' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2369 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2370 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2371 if opts.get(b'delete'): |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2372 indices = [] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2373 for v in opts.get(b'delete'): |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2374 try: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2375 indices.append(int(v)) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2376 except ValueError: |
45889
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2377 raise error.InputError( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2378 _(b'invalid index value: %r') % v, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2379 hint=_(b'use integers for indices'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2380 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2381 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2382 if repo.currenttransaction(): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2383 raise error.Abort( |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
2384 _(b'cannot delete obsmarkers in the middle of transaction.') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2385 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2386 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2387 with repo.lock(): |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2388 n = repair.deleteobsmarkers(repo.obsstore, indices) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2389 ui.write(_(b'deleted %i obsolescence markers\n') % n) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2390 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2391 return |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2392 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2393 if precursor is not None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2394 if opts[b'rev']: |
45889
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2395 raise error.InputError( |
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2396 b'cannot select revision when creating marker' |
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2397 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2398 metadata = {} |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2399 metadata[b'user'] = encoding.fromlocal(opts[b'user'] or ui.username()) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2400 succs = tuple(parsenodeid(succ) for succ in successors) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2401 l = repo.lock() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2402 try: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2403 tr = repo.transaction(b'debugobsolete') |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2404 try: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2405 date = opts.get(b'date') |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2406 if date: |
36636
c6061cadb400
util: extract all date-related utils in utils/dateutil module
Boris Feld <boris.feld@octobus.net>
parents:
36616
diff
changeset
|
2407 date = dateutil.parsedate(date) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2408 else: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2409 date = None |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2410 prec = parsenodeid(precursor) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2411 parents = None |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2412 if opts[b'record_parents']: |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2413 if prec not in repo.unfiltered(): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2414 raise error.Abort( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2415 b'cannot used --record-parents on ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2416 b'unknown changesets' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2417 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2418 parents = repo.unfiltered()[prec].parents() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2419 parents = tuple(p.node() for p in parents) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2420 repo.obsstore.create( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2421 tr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2422 prec, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2423 succs, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2424 opts[b'flags'], |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2425 parents=parents, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2426 date=date, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2427 metadata=metadata, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2428 ui=ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2429 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2430 tr.close() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2431 except ValueError as exc: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2432 raise error.Abort( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2433 _(b'bad obsmarker input: %s') % pycompat.bytestr(exc) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2434 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2435 finally: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2436 tr.release() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2437 finally: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2438 l.release() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2439 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2440 if opts[b'rev']: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2441 revs = scmutil.revrange(repo, opts[b'rev']) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2442 nodes = [repo[r].node() for r in revs] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2443 markers = list( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2444 obsutil.getmarkers( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2445 repo, nodes=nodes, exclusive=opts[b'exclusive'] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2446 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2447 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2448 markers.sort(key=lambda x: x._data) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2449 else: |
33155
a14e2e7f7d1f
obsutil: move 'getmarkers' to the new modules
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33154
diff
changeset
|
2450 markers = obsutil.getmarkers(repo) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2451 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2452 markerstoiter = markers |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2453 isrelevant = lambda m: True |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2454 if opts.get(b'rev') and opts.get(b'index'): |
33155
a14e2e7f7d1f
obsutil: move 'getmarkers' to the new modules
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33154
diff
changeset
|
2455 markerstoiter = obsutil.getmarkers(repo) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2456 markerset = set(markers) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2457 isrelevant = lambda m: m in markerset |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2458 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2459 fm = ui.formatter(b'debugobsolete', opts) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2460 for i, m in enumerate(markerstoiter): |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2461 if not isrelevant(m): |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2462 # marker can be irrelevant when we're iterating over a set |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2463 # of markers (markerstoiter) which is bigger than the set |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2464 # of markers we want to display (markers) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2465 # this can happen if both --index and --rev options are |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2466 # provided and thus we need to iterate over all of the markers |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2467 # to get the correct indices, but only display the ones that |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2468 # are relevant to --rev value |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2469 continue |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2470 fm.startitem() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2471 ind = i if opts.get(b'index') else None |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2472 cmdutil.showmarker(fm, m, index=ind) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2473 fm.end() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2474 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2475 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2476 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2477 b'debugp1copies', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2478 [(b'r', b'rev', b'', _(b'revision to debug'), _(b'REV'))], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2479 _(b'[-r REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2480 ) |
41764
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2481 def debugp1copies(ui, repo, **opts): |
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2482 """dump copy information compared to p1""" |
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2483 |
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2484 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2485 ctx = scmutil.revsingle(repo, opts.get(b'rev'), default=None) |
41764
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2486 for dst, src in ctx.p1copies().items(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2487 ui.write(b'%s -> %s\n' % (src, dst)) |
41764
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2488 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2489 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2490 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2491 b'debugp2copies', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2492 [(b'r', b'rev', b'', _(b'revision to debug'), _(b'REV'))], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2493 _(b'[-r REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2494 ) |
41764
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2495 def debugp1copies(ui, repo, **opts): |
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2496 """dump copy information compared to p2""" |
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2497 |
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2498 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2499 ctx = scmutil.revsingle(repo, opts.get(b'rev'), default=None) |
41764
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2500 for dst, src in ctx.p2copies().items(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2501 ui.write(b'%s -> %s\n' % (src, dst)) |
41764
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2502 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2503 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2504 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2505 b'debugpathcomplete', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2506 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2507 (b'f', b'full', None, _(b'complete an entire path')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2508 (b'n', b'normal', None, _(b'show only normal files')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2509 (b'a', b'added', None, _(b'show only added files')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2510 (b'r', b'removed', None, _(b'show only removed files')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2511 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2512 _(b'FILESPEC...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2513 ) |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2514 def debugpathcomplete(ui, repo, *specs, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
2515 """complete part or all of a tracked path |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2516 |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2517 This command supports shells that offer path name completion. It |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2518 currently completes only files already known to the dirstate. |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2519 |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2520 Completion extends only to the next path segment unless |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
2521 --full is specified, in which case entire paths are used.""" |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2522 |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2523 def complete(path, acceptable): |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2524 dirstate = repo.dirstate |
39823
24e493ec2229
py3: rename pycompat.getcwd() to encoding.getcwd() (API)
Matt Harbison <matt_harbison@yahoo.com>
parents:
39776
diff
changeset
|
2525 spec = os.path.normpath(os.path.join(encoding.getcwd(), path)) |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2526 rootdir = repo.root + pycompat.ossep |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2527 if spec != repo.root and not spec.startswith(rootdir): |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2528 return [], [] |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2529 if os.path.isdir(spec): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2530 spec += b'/' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2531 spec = spec[len(rootdir) :] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2532 fixpaths = pycompat.ossep != b'/' |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2533 if fixpaths: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2534 spec = spec.replace(pycompat.ossep, b'/') |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2535 speclen = len(spec) |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2536 fullpaths = opts['full'] |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2537 files, dirs = set(), set() |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2538 adddir, addfile = dirs.add, files.add |
43106
d783f945a701
py3: finish porting iteritems() to pycompat and remove source transformer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43094
diff
changeset
|
2539 for f, st in pycompat.iteritems(dirstate): |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2540 if f.startswith(spec) and st[0] in acceptable: |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2541 if fixpaths: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2542 f = f.replace(b'/', pycompat.ossep) |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2543 if fullpaths: |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2544 addfile(f) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2545 continue |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2546 s = f.find(pycompat.ossep, speclen) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2547 if s >= 0: |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2548 adddir(f[:s]) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2549 else: |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2550 addfile(f) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2551 return files, dirs |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2552 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2553 acceptable = b'' |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2554 if opts['normal']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2555 acceptable += b'nm' |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2556 if opts['added']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2557 acceptable += b'a' |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2558 if opts['removed']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2559 acceptable += b'r' |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2560 cwd = repo.getcwd() |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2561 if not specs: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2562 specs = [b'.'] |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2563 |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2564 files, dirs = set(), set() |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2565 for spec in specs: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2566 f, d = complete(spec, acceptable or b'nmar') |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2567 files.update(f) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2568 dirs.update(d) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2569 files.update(dirs) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2570 ui.write(b'\n'.join(repo.pathto(p, cwd) for p in sorted(files))) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2571 ui.write(b'\n') |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2572 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2573 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2574 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2575 b'debugpathcopies', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2576 cmdutil.walkopts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2577 b'hg debugpathcopies REV1 REV2 [FILE]', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2578 inferrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2579 ) |
41529
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2580 def debugpathcopies(ui, repo, rev1, rev2, *pats, **opts): |
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2581 """show copies between two revisions""" |
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2582 ctx1 = scmutil.revsingle(repo, rev1) |
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2583 ctx2 = scmutil.revsingle(repo, rev2) |
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2584 m = scmutil.match(ctx1, pats, opts) |
41758
f96988680afe
debugpathcopies: sort output so it's deterministic
Martin von Zweigbergk <martinvonz@google.com>
parents:
41702
diff
changeset
|
2585 for dst, src in sorted(copies.pathcopies(ctx1, ctx2, m).items()): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2586 ui.write(b'%s -> %s\n' % (src, dst)) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2587 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2588 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2589 @command(b'debugpeer', [], _(b'PATH'), norepo=True) |
35969
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2590 def debugpeer(ui, path): |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2591 """establish a connection to a peer repository""" |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2592 # Always enable peer request logging. Requires --debug to display |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2593 # though. |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2594 overrides = { |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2595 (b'devel', b'debug.peer-request'): True, |
35969
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2596 } |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2597 |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2598 with ui.configoverride(overrides): |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2599 peer = hg.peer(ui, {}, path) |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2600 |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2601 local = peer.local() is not None |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2602 canpush = peer.canpush() |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2603 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2604 ui.write(_(b'url: %s\n') % peer.url()) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2605 ui.write(_(b'local: %s\n') % (_(b'yes') if local else _(b'no'))) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2606 ui.write(_(b'pushable: %s\n') % (_(b'yes') if canpush else _(b'no'))) |
35969
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2607 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2608 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2609 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2610 b'debugpickmergetool', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2611 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2612 (b'r', b'rev', b'', _(b'check for files in this revision'), _(b'REV')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2613 (b'', b'changedelete', None, _(b'emulate merging change and delete')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2614 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2615 + cmdutil.walkopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2616 + cmdutil.mergetoolopts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2617 _(b'[PATTERN]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2618 inferrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2619 ) |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2620 def debugpickmergetool(ui, repo, *pats, **opts): |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2621 """examine which merge tool is chosen for specified file |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2622 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2623 As described in :hg:`help merge-tools`, Mercurial examines |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2624 configurations below in this order to decide which merge tool is |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2625 chosen for specified file. |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2626 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2627 1. ``--tool`` option |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2628 2. ``HGMERGE`` environment variable |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2629 3. configurations in ``merge-patterns`` section |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2630 4. configuration of ``ui.merge`` |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2631 5. configurations in ``merge-tools`` section |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2632 6. ``hgmerge`` tool (for historical reason only) |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2633 7. default tool for fallback (``:merge`` or ``:prompt``) |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2634 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2635 This command writes out examination result in the style below:: |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2636 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2637 FILE = MERGETOOL |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2638 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2639 By default, all files known in the first parent context of the |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2640 working directory are examined. Use file patterns and/or -I/-X |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2641 options to limit target files. -r/--rev is also useful to examine |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2642 files in another context without actual updating to it. |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2643 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2644 With --debug, this command shows warning messages while matching |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2645 against ``merge-patterns`` and so on, too. It is recommended to |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2646 use this option with explicit file patterns and/or -I/-X options, |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2647 because this option increases amount of output per file according |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2648 to configurations in hgrc. |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2649 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2650 With -v/--verbose, this command shows configurations below at |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2651 first (only if specified). |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2652 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2653 - ``--tool`` option |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2654 - ``HGMERGE`` environment variable |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2655 - configuration of ``ui.merge`` |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2656 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2657 If merge tool is chosen before matching against |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2658 ``merge-patterns``, this command can't show any helpful |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2659 information, even with --debug. In such case, information above is |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2660 useful to know why a merge tool is chosen. |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2661 """ |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
2662 opts = pycompat.byteskwargs(opts) |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2663 overrides = {} |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2664 if opts[b'tool']: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2665 overrides[(b'ui', b'forcemerge')] = opts[b'tool'] |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
2666 ui.notenoi18n(b'with --tool %r\n' % (pycompat.bytestr(opts[b'tool']))) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2667 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2668 with ui.configoverride(overrides, b'debugmergepatterns'): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2669 hgmerge = encoding.environ.get(b"HGMERGE") |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2670 if hgmerge is not None: |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
2671 ui.notenoi18n(b'with HGMERGE=%r\n' % (pycompat.bytestr(hgmerge))) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2672 uimerge = ui.config(b"ui", b"merge") |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2673 if uimerge: |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
2674 ui.notenoi18n(b'with ui.merge=%r\n' % (pycompat.bytestr(uimerge))) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2675 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2676 ctx = scmutil.revsingle(repo, opts.get(b'rev')) |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2677 m = scmutil.match(ctx, pats, opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2678 changedelete = opts[b'changedelete'] |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2679 for path in ctx.walk(m): |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2680 fctx = ctx[path] |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2681 try: |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2682 if not ui.debugflag: |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2683 ui.pushbuffer(error=True) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2684 tool, toolpath = filemerge._picktool( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2685 repo, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2686 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2687 path, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2688 fctx.isbinary(), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2689 b'l' in fctx.flags(), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2690 changedelete, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2691 ) |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2692 finally: |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2693 if not ui.debugflag: |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2694 ui.popbuffer() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2695 ui.write(b'%s = %s\n' % (path, tool)) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2696 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2697 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2698 @command(b'debugpushkey', [], _(b'REPO NAMESPACE [KEY OLD NEW]'), norepo=True) |
30966
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2699 def debugpushkey(ui, repopath, namespace, *keyinfo, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
2700 """access the pushkey key/value protocol |
30966
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2701 |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2702 With two args, list the keys in the given namespace. |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2703 |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2704 With five args, set a key to new if it currently is set to old. |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2705 Reports success or failure. |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
2706 """ |
30966
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2707 |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2708 target = hg.peer(ui, {}, repopath) |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2709 if keyinfo: |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2710 key, old, new = keyinfo |
37647
516b5a5edae3
exchange: use command executor for pushkey
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37645
diff
changeset
|
2711 with target.commandexecutor() as e: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2712 r = e.callcommand( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2713 b'pushkey', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2714 { |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2715 b'namespace': namespace, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2716 b'key': key, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2717 b'old': old, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2718 b'new': new, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2719 }, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2720 ).result() |
37647
516b5a5edae3
exchange: use command executor for pushkey
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37645
diff
changeset
|
2721 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2722 ui.status(pycompat.bytestr(r) + b'\n') |
30966
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2723 return not r |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2724 else: |
43106
d783f945a701
py3: finish porting iteritems() to pycompat and remove source transformer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43094
diff
changeset
|
2725 for k, v in sorted(pycompat.iteritems(target.listkeys(namespace))): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2726 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2727 b"%s\t%s\n" % (stringutil.escapestr(k), stringutil.escapestr(v)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2728 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2729 |
30966
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2730 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2731 @command(b'debugpvec', [], _(b'A B')) |
30967
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
2732 def debugpvec(ui, repo, a, b=None): |
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
2733 ca = scmutil.revsingle(repo, a) |
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
2734 cb = scmutil.revsingle(repo, b) |
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
2735 pa = pvec.ctxpvec(ca) |
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
2736 pb = pvec.ctxpvec(cb) |
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
2737 if pa == pb: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2738 rel = b"=" |
30967
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
2739 elif pa > pb: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2740 rel = b">" |
30967
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
2741 elif pa < pb: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2742 rel = b"<" |
30967
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
2743 elif pa | pb: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2744 rel = b"|" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2745 ui.write(_(b"a: %s\n") % pa) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2746 ui.write(_(b"b: %s\n") % pb) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2747 ui.write(_(b"depth(a): %d depth(b): %d\n") % (pa._depth, pb._depth)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2748 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2749 _(b"delta: %d hdist: %d distance: %d relation: %s\n") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2750 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2751 abs(pa._depth - pb._depth), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2752 pvec._hamming(pa._vec, pb._vec), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2753 pa.distance(pb), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2754 rel, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2755 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2756 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2757 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2758 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2759 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2760 b'debugrebuilddirstate|debugrebuildstate', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2761 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2762 (b'r', b'rev', b'', _(b'revision to rebuild to'), _(b'REV')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2763 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2764 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2765 b'minimal', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2766 None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2767 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2768 b'only rebuild files that are inconsistent with ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2769 b'the working copy parent' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2770 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2771 ), |
30968
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2772 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2773 _(b'[-r REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2774 ) |
30968
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2775 def debugrebuilddirstate(ui, repo, rev, **opts): |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2776 """rebuild the dirstate as it would look like for the given revision |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2777 |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2778 If no revision is specified the first current parent will be used. |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2779 |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2780 The dirstate will be set to the files of the given revision. |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2781 The actual working directory content or existing dirstate |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2782 information such as adds or removes is not considered. |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2783 |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2784 ``minimal`` will only rebuild the dirstate status for files that claim to be |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2785 tracked but are not in the parent manifest, or that exist in the parent |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2786 manifest but are not in the dirstate. It will not change adds, removes, or |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2787 modified files that are in the working copy parent. |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2788 |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2789 One use of this command is to make the next :hg:`status` invocation |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2790 check the actual file content. |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2791 """ |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2792 ctx = scmutil.revsingle(repo, rev) |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2793 with repo.wlock(): |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2794 dirstate = repo.dirstate |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2795 changedfiles = None |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2796 # See command doc for what minimal does. |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2797 if opts.get('minimal'): |
30968
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2798 manifestfiles = set(ctx.manifest().keys()) |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2799 dirstatefiles = set(dirstate) |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2800 manifestonly = manifestfiles - dirstatefiles |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2801 dsonly = dirstatefiles - manifestfiles |
44470
9d2b2df2c2ba
cleanup: run pyupgrade on our source tree to clean up varying things
Augie Fackler <augie@google.com>
parents:
44453
diff
changeset
|
2802 dsnotadded = {f for f in dsonly if dirstate[f] != b'a'} |
30968
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2803 changedfiles = manifestonly | dsnotadded |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2804 |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2805 dirstate.rebuild(ctx.node(), ctx.manifest(), changedfiles) |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
2806 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2807 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2808 @command(b'debugrebuildfncache', [], b'') |
30969
e7d7335819f4
debugcommands: move 'debugrebuildfncache' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30968
diff
changeset
|
2809 def debugrebuildfncache(ui, repo): |
e7d7335819f4
debugcommands: move 'debugrebuildfncache' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30968
diff
changeset
|
2810 """rebuild the fncache file""" |
e7d7335819f4
debugcommands: move 'debugrebuildfncache' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30968
diff
changeset
|
2811 repair.rebuildfncache(ui, repo) |
e7d7335819f4
debugcommands: move 'debugrebuildfncache' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30968
diff
changeset
|
2812 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2813 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2814 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2815 b'debugrename', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2816 [(b'r', b'rev', b'', _(b'revision to debug'), _(b'REV'))], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2817 _(b'[-r REV] [FILE]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2818 ) |
41701
ea72da71ad69
debugrename: don't require at least one path
Martin von Zweigbergk <martinvonz@google.com>
parents:
41682
diff
changeset
|
2819 def debugrename(ui, repo, *pats, **opts): |
30970
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
2820 """dump rename information""" |
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
2821 |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
2822 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2823 ctx = scmutil.revsingle(repo, opts.get(b'rev')) |
41701
ea72da71ad69
debugrename: don't require at least one path
Martin von Zweigbergk <martinvonz@google.com>
parents:
41682
diff
changeset
|
2824 m = scmutil.match(ctx, pats, opts) |
30970
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
2825 for abs in ctx.walk(m): |
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
2826 fctx = ctx[abs] |
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
2827 o = fctx.filelog().renamed(fctx.filenode()) |
41670
ecf7f4ef52fb
debugwalk: avoid match.rel() and use repo.pathto() instead
Martin von Zweigbergk <martinvonz@google.com>
parents:
41647
diff
changeset
|
2828 rel = repo.pathto(abs) |
30970
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
2829 if o: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2830 ui.write(_(b"%s renamed from %s:%s\n") % (rel, o[0], hex(o[1]))) |
30970
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
2831 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2832 ui.write(_(b"%s not renamed\n") % rel) |
30970
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
2833 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2834 |
45107
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
2835 @command(b'debugrequires|debugrequirements', [], b'') |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
2836 def debugrequirements(ui, repo): |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
2837 """ print the current repo requirements """ |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
2838 for r in sorted(repo.requirements): |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
2839 ui.write(b"%s\n" % r) |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
2840 |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
2841 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2842 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2843 b'debugrevlog', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2844 cmdutil.debugrevlogopts + [(b'd', b'dump', False, _(b'dump index data'))], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2845 _(b'-c|-m|FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2846 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2847 ) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2848 def debugrevlog(ui, repo, file_=None, **opts): |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2849 """show data and statistics about a revlog""" |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
2850 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2851 r = cmdutil.openrevlog(repo, b'debugrevlog', file_, opts) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2852 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2853 if opts.get(b"dump"): |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2854 numrevs = len(r) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2855 ui.write( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2856 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2857 b"# rev p1rev p2rev start end deltastart base p1 p2" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2858 b" rawsize totalsize compression heads chainlen\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2859 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2860 ) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2861 ts = 0 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2862 heads = set() |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2863 |
38823
e7aa113b14f7
global: use pycompat.xrange()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38821
diff
changeset
|
2864 for rev in pycompat.xrange(numrevs): |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2865 dbase = r.deltaparent(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2866 if dbase == -1: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2867 dbase = rev |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2868 cbase = r.chainbase(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2869 clen = r.chainlen(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2870 p1, p2 = r.parentrevs(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2871 rs = r.rawsize(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2872 ts = ts + rs |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2873 heads -= set(r.parentrevs(rev)) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2874 heads.add(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2875 try: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2876 compression = ts / r.end(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2877 except ZeroDivisionError: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2878 compression = 0 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2879 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2880 b"%5d %5d %5d %5d %5d %10d %4d %4d %4d %7d %9d " |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2881 b"%11d %5d %8d\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2882 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2883 rev, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2884 p1, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2885 p2, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2886 r.start(rev), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2887 r.end(rev), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2888 r.start(dbase), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2889 r.start(cbase), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2890 r.start(p1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2891 r.start(p2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2892 rs, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2893 ts, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2894 compression, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2895 len(heads), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2896 clen, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2897 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2898 ) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2899 return 0 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2900 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2901 v = r.version |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2902 format = v & 0xFFFF |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2903 flags = [] |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2904 gdelta = False |
32355
67026d65a4fc
revlog: rename constants (API)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32305
diff
changeset
|
2905 if v & revlog.FLAG_INLINE_DATA: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2906 flags.append(b'inline') |
32355
67026d65a4fc
revlog: rename constants (API)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32305
diff
changeset
|
2907 if v & revlog.FLAG_GENERALDELTA: |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2908 gdelta = True |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2909 flags.append(b'generaldelta') |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2910 if not flags: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2911 flags = [b'(none)'] |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2912 |
39117
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2913 ### tracks merge vs single parent |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2914 nummerges = 0 |
39117
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2915 |
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2916 ### tracks ways the "delta" are build |
39118
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2917 # nodelta |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2918 numempty = 0 |
39119
a456c603a83d
debugrevlog: display details about empty revision
Boris Feld <boris.feld@octobus.net>
parents:
39118
diff
changeset
|
2919 numemptytext = 0 |
a456c603a83d
debugrevlog: display details about empty revision
Boris Feld <boris.feld@octobus.net>
parents:
39118
diff
changeset
|
2920 numemptydelta = 0 |
39117
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2921 # full file content |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2922 numfull = 0 |
39184
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
2923 # intermediate snapshot against a prior snapshot |
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
2924 numsemi = 0 |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
2925 # snapshot count per depth |
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
2926 numsnapdepth = collections.defaultdict(lambda: 0) |
39117
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2927 # delta against previous revision |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2928 numprev = 0 |
39117
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2929 # delta against first or second parent (not prev) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2930 nump1 = 0 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2931 nump2 = 0 |
39117
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2932 # delta against neither prev nor parents |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2933 numother = 0 |
39117
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2934 # delta against prev that are also first or second parent |
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2935 # (details of `numprev`) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2936 nump1prev = 0 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2937 nump2prev = 0 |
39117
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2938 |
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2939 # data about delta chain of each revs |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2940 chainlengths = [] |
33069
03eefca3ed33
debugrevlog: also display the largest delta chain span
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33043
diff
changeset
|
2941 chainbases = [] |
03eefca3ed33
debugrevlog: also display the largest delta chain span
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33043
diff
changeset
|
2942 chainspans = [] |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2943 |
39117
5c99486fcfe1
debugrevlog: document some of the variable used
Boris Feld <boris.feld@octobus.net>
parents:
39102
diff
changeset
|
2944 # data about each revision |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2945 datasize = [None, 0, 0] |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2946 fullsize = [None, 0, 0] |
39184
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
2947 semisize = [None, 0, 0] |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
2948 # snapshot count per depth |
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
2949 snapsizedepth = collections.defaultdict(lambda: [None, 0, 0]) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2950 deltasize = [None, 0, 0] |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2951 chunktypecounts = {} |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2952 chunktypesizes = {} |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2953 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2954 def addsize(size, l): |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2955 if l[0] is None or size < l[0]: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2956 l[0] = size |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2957 if size > l[1]: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2958 l[1] = size |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2959 l[2] += size |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2960 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2961 numrevs = len(r) |
38823
e7aa113b14f7
global: use pycompat.xrange()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38821
diff
changeset
|
2962 for rev in pycompat.xrange(numrevs): |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2963 p1, p2 = r.parentrevs(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2964 delta = r.deltaparent(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2965 if format > 0: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2966 addsize(r.rawsize(rev), datasize) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2967 if p2 != nullrev: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2968 nummerges += 1 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2969 size = r.length(rev) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2970 if delta == nullrev: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2971 chainlengths.append(0) |
33069
03eefca3ed33
debugrevlog: also display the largest delta chain span
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33043
diff
changeset
|
2972 chainbases.append(r.start(rev)) |
03eefca3ed33
debugrevlog: also display the largest delta chain span
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33043
diff
changeset
|
2973 chainspans.append(size) |
39118
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2974 if size == 0: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2975 numempty += 1 |
39119
a456c603a83d
debugrevlog: display details about empty revision
Boris Feld <boris.feld@octobus.net>
parents:
39118
diff
changeset
|
2976 numemptytext += 1 |
39118
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2977 else: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2978 numfull += 1 |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
2979 numsnapdepth[0] += 1 |
39118
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2980 addsize(size, fullsize) |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
2981 addsize(size, snapsizedepth[0]) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2982 else: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
2983 chainlengths.append(chainlengths[delta] + 1) |
33069
03eefca3ed33
debugrevlog: also display the largest delta chain span
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33043
diff
changeset
|
2984 baseaddr = chainbases[delta] |
03eefca3ed33
debugrevlog: also display the largest delta chain span
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33043
diff
changeset
|
2985 revaddr = r.start(rev) |
03eefca3ed33
debugrevlog: also display the largest delta chain span
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33043
diff
changeset
|
2986 chainbases.append(baseaddr) |
03eefca3ed33
debugrevlog: also display the largest delta chain span
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33043
diff
changeset
|
2987 chainspans.append((revaddr - baseaddr) + size) |
39118
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2988 if size == 0: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2989 numempty += 1 |
39119
a456c603a83d
debugrevlog: display details about empty revision
Boris Feld <boris.feld@octobus.net>
parents:
39118
diff
changeset
|
2990 numemptydelta += 1 |
39184
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
2991 elif r.issnapshot(rev): |
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
2992 addsize(size, semisize) |
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
2993 numsemi += 1 |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
2994 depth = r.snapshotdepth(rev) |
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
2995 numsnapdepth[depth] += 1 |
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
2996 addsize(size, snapsizedepth[depth]) |
39118
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2997 else: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2998 addsize(size, deltasize) |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
2999 if delta == rev - 1: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3000 numprev += 1 |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3001 if delta == p1: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3002 nump1prev += 1 |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3003 elif delta == p2: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3004 nump2prev += 1 |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3005 elif delta == p1: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3006 nump1 += 1 |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3007 elif delta == p2: |
39118
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3008 nump2 += 1 |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3009 elif delta != nullrev: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3010 numother += 1 |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3011 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3012 # Obtain data on the raw chunks in the revlog. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3013 if util.safehasattr(r, b'_getsegmentforrevs'): |
39181
1464183343b3
debugrevlog: fix for non-manifest object
Boris Feld <boris.feld@octobus.net>
parents:
39119
diff
changeset
|
3014 segment = r._getsegmentforrevs(rev, rev)[1] |
1464183343b3
debugrevlog: fix for non-manifest object
Boris Feld <boris.feld@octobus.net>
parents:
39119
diff
changeset
|
3015 else: |
1464183343b3
debugrevlog: fix for non-manifest object
Boris Feld <boris.feld@octobus.net>
parents:
39119
diff
changeset
|
3016 segment = r._revlog._getsegmentforrevs(rev, rev)[1] |
32269
75e93d95aae6
revlog: rename _chunkraw to _getsegmentforrevs()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32249
diff
changeset
|
3017 if segment: |
33118
2f812b0d1936
py3: pass the memoryview object into bytes() to get the value
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33114
diff
changeset
|
3018 chunktype = bytes(segment[0:1]) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3019 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3020 chunktype = b'empty' |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3021 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3022 if chunktype not in chunktypecounts: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3023 chunktypecounts[chunktype] = 0 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3024 chunktypesizes[chunktype] = 0 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3025 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3026 chunktypecounts[chunktype] += 1 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3027 chunktypesizes[chunktype] += size |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3028 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3029 # Adjust size min value for empty cases |
39184
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
3030 for size in (datasize, fullsize, semisize, deltasize): |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3031 if size[0] is None: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3032 size[0] = 0 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3033 |
39184
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
3034 numdeltas = numrevs - numfull - numempty - numsemi |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3035 numoprev = numprev - nump1prev - nump2prev |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3036 totalrawsize = datasize[2] |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3037 datasize[2] /= numrevs |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3038 fulltotal = fullsize[2] |
42186
30033d56758f
debugrevlog: fix average size computation for empty data (issue6167)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42148
diff
changeset
|
3039 if numfull == 0: |
30033d56758f
debugrevlog: fix average size computation for empty data (issue6167)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42148
diff
changeset
|
3040 fullsize[2] = 0 |
30033d56758f
debugrevlog: fix average size computation for empty data (issue6167)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42148
diff
changeset
|
3041 else: |
30033d56758f
debugrevlog: fix average size computation for empty data (issue6167)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42148
diff
changeset
|
3042 fullsize[2] /= numfull |
39184
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
3043 semitotal = semisize[2] |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3044 snaptotal = {} |
40030
e2697acd9381
cleanup: some Yoda conditions, this patch removes
Martin von Zweigbergk <martinvonz@google.com>
parents:
40018
diff
changeset
|
3045 if numsemi > 0: |
39184
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
3046 semisize[2] /= numsemi |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3047 for depth in snapsizedepth: |
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3048 snaptotal[depth] = snapsizedepth[depth][2] |
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3049 snapsizedepth[depth][2] /= numsnapdepth[depth] |
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3050 |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3051 deltatotal = deltasize[2] |
39118
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3052 if numdeltas > 0: |
195ed920653e
debugrevlog: track empty revlog entries
Boris Feld <boris.feld@octobus.net>
parents:
39117
diff
changeset
|
3053 deltasize[2] /= numdeltas |
39184
07b82f55f351
debugrevlog: include information about intermediate snapshots
Boris Feld <boris.feld@octobus.net>
parents:
39181
diff
changeset
|
3054 totalsize = fulltotal + semitotal + deltatotal |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3055 avgchainlen = sum(chainlengths) / numrevs |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3056 maxchainlen = max(chainlengths) |
33069
03eefca3ed33
debugrevlog: also display the largest delta chain span
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33043
diff
changeset
|
3057 maxchainspan = max(chainspans) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3058 compratio = 1 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3059 if totalsize: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3060 compratio = totalrawsize / totalsize |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3061 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3062 basedfmtstr = b'%%%dd\n' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3063 basepcfmtstr = b'%%%dd %s(%%5.2f%%%%)\n' |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3064 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3065 def dfmtstr(max): |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3066 return basedfmtstr % len(str(max)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3067 |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3068 def pcfmtstr(max, padding=0): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3069 return basepcfmtstr % (len(str(max)), b' ' * padding) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3070 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3071 def pcfmt(value, total): |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3072 if total: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3073 return (value, 100 * float(value) / total) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3074 else: |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3075 return value, 100.0 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3076 |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3077 ui.writenoi18n(b'format : %d\n' % format) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3078 ui.writenoi18n(b'flags : %s\n' % b', '.join(flags)) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3079 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3080 ui.write(b'\n') |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3081 fmt = pcfmtstr(totalsize) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3082 fmt2 = dfmtstr(totalsize) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3083 ui.writenoi18n(b'revisions : ' + fmt2 % numrevs) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3084 ui.writenoi18n(b' merges : ' + fmt % pcfmt(nummerges, numrevs)) |
43094
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3085 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3086 b' normal : ' + fmt % pcfmt(numrevs - nummerges, numrevs) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3087 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3088 ui.writenoi18n(b'revisions : ' + fmt2 % numrevs) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3089 ui.writenoi18n(b' empty : ' + fmt % pcfmt(numempty, numrevs)) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3090 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3091 b' text : ' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3092 + fmt % pcfmt(numemptytext, numemptytext + numemptydelta) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3093 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3094 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3095 b' delta : ' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3096 + fmt % pcfmt(numemptydelta, numemptytext + numemptydelta) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3097 ) |
43094
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3098 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3099 b' snapshot : ' + fmt % pcfmt(numfull + numsemi, numrevs) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3100 ) |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3101 for depth in sorted(numsnapdepth): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3102 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3103 (b' lvl-%-3d : ' % depth) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3104 + fmt % pcfmt(numsnapdepth[depth], numrevs) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3105 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3106 ui.writenoi18n(b' deltas : ' + fmt % pcfmt(numdeltas, numrevs)) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3107 ui.writenoi18n(b'revision size : ' + fmt2 % totalsize) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3108 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3109 b' snapshot : ' + fmt % pcfmt(fulltotal + semitotal, totalsize) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3110 ) |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3111 for depth in sorted(numsnapdepth): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3112 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3113 (b' lvl-%-3d : ' % depth) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3114 + fmt % pcfmt(snaptotal[depth], totalsize) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3115 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3116 ui.writenoi18n(b' deltas : ' + fmt % pcfmt(deltatotal, totalsize)) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3117 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3118 def fmtchunktype(chunktype): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3119 if chunktype == b'empty': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3120 return b' %s : ' % chunktype |
33119
e88fdec9cb9e
py3: use pycompat.bytestr() to convert str to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33118
diff
changeset
|
3121 elif chunktype in pycompat.bytestr(string.ascii_letters): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3122 return b' 0x%s (%s) : ' % (hex(chunktype), chunktype) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3123 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3124 return b' 0x%s : ' % hex(chunktype) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3125 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3126 ui.write(b'\n') |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3127 ui.writenoi18n(b'chunks : ' + fmt2 % numrevs) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3128 for chunktype in sorted(chunktypecounts): |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3129 ui.write(fmtchunktype(chunktype)) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3130 ui.write(fmt % pcfmt(chunktypecounts[chunktype], numrevs)) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3131 ui.writenoi18n(b'chunks size : ' + fmt2 % totalsize) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3132 for chunktype in sorted(chunktypecounts): |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3133 ui.write(fmtchunktype(chunktype)) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3134 ui.write(fmt % pcfmt(chunktypesizes[chunktype], totalsize)) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3135 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3136 ui.write(b'\n') |
33074
e21b750c9b9e
debugrevlog: align chain length, reach, and compression ratio
Yuya Nishihara <yuya@tcha.org>
parents:
33069
diff
changeset
|
3137 fmt = dfmtstr(max(avgchainlen, maxchainlen, maxchainspan, compratio)) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3138 ui.writenoi18n(b'avg chain length : ' + fmt % avgchainlen) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3139 ui.writenoi18n(b'max chain length : ' + fmt % maxchainlen) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3140 ui.writenoi18n(b'max chain reach : ' + fmt % maxchainspan) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3141 ui.writenoi18n(b'compression ratio : ' + fmt % compratio) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3142 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3143 if format > 0: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3144 ui.write(b'\n') |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3145 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3146 b'uncompressed data size (min/max/avg) : %d / %d / %d\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3147 % tuple(datasize) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3148 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3149 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3150 b'full revision size (min/max/avg) : %d / %d / %d\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3151 % tuple(fullsize) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3152 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3153 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3154 b'inter-snapshot size (min/max/avg) : %d / %d / %d\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3155 % tuple(semisize) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3156 ) |
39186
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3157 for depth in sorted(snapsizedepth): |
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3158 if depth == 0: |
9d6fab487c13
debugrevlog: display snapshot details per depth
Boris Feld <boris.feld@octobus.net>
parents:
39184
diff
changeset
|
3159 continue |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3160 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3161 b' level-%-3d (min/max/avg) : %d / %d / %d\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3162 % ((depth,) + tuple(snapsizedepth[depth])) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3163 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3164 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3165 b'delta size (min/max/avg) : %d / %d / %d\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3166 % tuple(deltasize) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3167 ) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3168 |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3169 if numdeltas > 0: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3170 ui.write(b'\n') |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3171 fmt = pcfmtstr(numdeltas) |
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3172 fmt2 = pcfmtstr(numdeltas, 4) |
43094
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3173 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3174 b'deltas against prev : ' + fmt % pcfmt(numprev, numdeltas) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3175 ) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3176 if numprev > 0: |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3177 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3178 b' where prev = p1 : ' + fmt2 % pcfmt(nump1prev, numprev) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3179 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3180 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3181 b' where prev = p2 : ' + fmt2 % pcfmt(nump2prev, numprev) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3182 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3183 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3184 b' other : ' + fmt2 % pcfmt(numoprev, numprev) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3185 ) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3186 if gdelta: |
43094
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3187 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3188 b'deltas against p1 : ' + fmt % pcfmt(nump1, numdeltas) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3189 ) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3190 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3191 b'deltas against p2 : ' + fmt % pcfmt(nump2, numdeltas) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3192 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3193 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3194 b'deltas against other : ' + fmt % pcfmt(numother, numdeltas) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3195 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3196 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3197 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3198 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3199 b'debugrevlogindex', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3200 cmdutil.debugrevlogopts |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3201 + [(b'f', b'format', 0, _(b'revlog format'), _(b'FORMAT'))], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3202 _(b'[-f FORMAT] -c|-m|FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3203 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3204 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3205 def debugrevlogindex(ui, repo, file_=None, **opts): |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3206 """dump the contents of a revlog index""" |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3207 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3208 r = cmdutil.openrevlog(repo, b'debugrevlogindex', file_, opts) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3209 format = opts.get(b'format', 0) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3210 if format not in (0, 1): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3211 raise error.Abort(_(b"unknown format %d") % format) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3212 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3213 if ui.debugflag: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3214 shortfn = hex |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3215 else: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3216 shortfn = short |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3217 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3218 # There might not be anything in r, so have a sane default |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3219 idlen = 12 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3220 for i in r: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3221 idlen = len(shortfn(r.node(i))) |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3222 break |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3223 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3224 if format == 0: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3225 if ui.verbose: |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3226 ui.writenoi18n( |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
3227 b" rev offset length linkrev %s %s p2\n" |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3228 % (b"nodeid".ljust(idlen), b"p1".ljust(idlen)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3229 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3230 else: |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3231 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3232 b" rev linkrev %s %s p2\n" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3233 % (b"nodeid".ljust(idlen), b"p1".ljust(idlen)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3234 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3235 elif format == 1: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3236 if ui.verbose: |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3237 ui.writenoi18n( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3238 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3239 b" rev flag offset length size link p1" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3240 b" p2 %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3241 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3242 % b"nodeid".rjust(idlen) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3243 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3244 else: |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3245 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3246 b" rev flag size link p1 p2 %s\n" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3247 % b"nodeid".rjust(idlen) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3248 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3249 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3250 for i in r: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3251 node = r.node(i) |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3252 if format == 0: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3253 try: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3254 pp = r.parents(node) |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3255 except Exception: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3256 pp = [nullid, nullid] |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3257 if ui.verbose: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3258 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3259 b"% 6d % 9d % 7d % 7d %s %s %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3260 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3261 i, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3262 r.start(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3263 r.length(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3264 r.linkrev(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3265 shortfn(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3266 shortfn(pp[0]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3267 shortfn(pp[1]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3268 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3269 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3270 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3271 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3272 b"% 6d % 7d %s %s %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3273 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3274 i, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3275 r.linkrev(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3276 shortfn(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3277 shortfn(pp[0]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3278 shortfn(pp[1]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3279 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3280 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3281 elif format == 1: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3282 pr = r.parentrevs(i) |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3283 if ui.verbose: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3284 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3285 b"% 6d %04x % 8d % 8d % 8d % 6d % 6d % 6d %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3286 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3287 i, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3288 r.flags(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3289 r.start(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3290 r.length(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3291 r.rawsize(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3292 r.linkrev(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3293 pr[0], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3294 pr[1], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3295 shortfn(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3296 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3297 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3298 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3299 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3300 b"% 6d %04x % 8d % 6d % 6d % 6d %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3301 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3302 i, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3303 r.flags(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3304 r.rawsize(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3305 r.linkrev(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3306 pr[0], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3307 pr[1], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3308 shortfn(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3309 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3310 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3311 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3312 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3313 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3314 b'debugrevspec', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3315 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3316 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3317 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3318 b'optimize', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3319 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3320 _(b'print parsed tree after optimizing (DEPRECATED)'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3321 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3322 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3323 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3324 b'show-revs', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3325 True, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3326 _(b'print list of result revisions (default)'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3327 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3328 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3329 b's', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3330 b'show-set', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3331 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3332 _(b'print internal representation of result set'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3333 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3334 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3335 b'p', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3336 b'show-stage', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3337 [], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3338 _(b'print parsed tree at the given stage'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3339 _(b'NAME'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3340 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3341 (b'', b'no-optimized', False, _(b'evaluate tree without optimization')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3342 (b'', b'verify-optimized', False, _(b'verify optimized result')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3343 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3344 b'REVSPEC', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3345 ) |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3346 def debugrevspec(ui, repo, expr, **opts): |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3347 """parse and apply a revision specification |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3348 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3349 Use -p/--show-stage option to print the parsed tree at the given stages. |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3350 Use -p all to print tree at every stage. |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3351 |
32816
bcca357bb792
debugrevspec: add option to suppress list of computed revisions
Yuya Nishihara <yuya@tcha.org>
parents:
32815
diff
changeset
|
3352 Use --no-show-revs option with -s or -p to print only the set |
bcca357bb792
debugrevspec: add option to suppress list of computed revisions
Yuya Nishihara <yuya@tcha.org>
parents:
32815
diff
changeset
|
3353 representation or the parsed tree respectively. |
bcca357bb792
debugrevspec: add option to suppress list of computed revisions
Yuya Nishihara <yuya@tcha.org>
parents:
32815
diff
changeset
|
3354 |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3355 Use --verify-optimized to compare the optimized result with the unoptimized |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3356 one. Returns 1 if the optimized result differs. |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3357 """ |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
3358 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3359 aliases = ui.configitems(b'revsetalias') |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3360 stages = [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3361 (b'parsed', lambda tree: tree), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3362 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3363 b'expanded', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3364 lambda tree: revsetlang.expandaliases(tree, aliases, ui.warn), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3365 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3366 (b'concatenated', revsetlang.foldconcat), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3367 (b'analyzed', revsetlang.analyze), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3368 (b'optimized', revsetlang.optimize), |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3369 ] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3370 if opts[b'no_optimized']: |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3371 stages = stages[:-1] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3372 if opts[b'verify_optimized'] and opts[b'no_optimized']: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3373 raise error.Abort( |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
3374 _(b'cannot use --verify-optimized with --no-optimized') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3375 ) |
44470
9d2b2df2c2ba
cleanup: run pyupgrade on our source tree to clean up varying things
Augie Fackler <augie@google.com>
parents:
44453
diff
changeset
|
3376 stagenames = {n for n, f in stages} |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3377 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3378 showalways = set() |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3379 showchanged = set() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3380 if ui.verbose and not opts[b'show_stage']: |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3381 # show parsed tree by --verbose (deprecated) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3382 showalways.add(b'parsed') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3383 showchanged.update([b'expanded', b'concatenated']) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3384 if opts[b'optimize']: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3385 showalways.add(b'optimized') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3386 if opts[b'show_stage'] and opts[b'optimize']: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3387 raise error.Abort(_(b'cannot use --optimize with --show-stage')) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3388 if opts[b'show_stage'] == [b'all']: |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3389 showalways.update(stagenames) |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3390 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3391 for n in opts[b'show_stage']: |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3392 if n not in stagenames: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3393 raise error.Abort(_(b'invalid stage name: %s') % n) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3394 showalways.update(opts[b'show_stage']) |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3395 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3396 treebystage = {} |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3397 printedtree = None |
37350
e32dfff71529
revset: use revsymbol() for checking if a symbol is valid
Martin von Zweigbergk <martinvonz@google.com>
parents:
37322
diff
changeset
|
3398 tree = revsetlang.parse(expr, lookup=revset.lookupfn(repo)) |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3399 for n, f in stages: |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3400 treebystage[n] = tree = f(tree) |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3401 if n in showalways or (n in showchanged and tree != printedtree): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3402 if opts[b'show_stage'] or n != b'parsed': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3403 ui.write(b"* %s:\n" % n) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3404 ui.write(revsetlang.prettyformat(tree), b"\n") |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3405 printedtree = tree |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3406 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3407 if opts[b'verify_optimized']: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3408 arevs = revset.makematcher(treebystage[b'analyzed'])(repo) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3409 brevs = revset.makematcher(treebystage[b'optimized'])(repo) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3410 if opts[b'show_set'] or (opts[b'show_set'] is None and ui.verbose): |
43094
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3411 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3412 b"* analyzed set:\n", stringutil.prettyrepr(arevs), b"\n" |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3413 ) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3414 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3415 b"* optimized set:\n", stringutil.prettyrepr(brevs), b"\n" |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3416 ) |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3417 arevs = list(arevs) |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3418 brevs = list(brevs) |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3419 if arevs == brevs: |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3420 return 0 |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3421 ui.writenoi18n(b'--- analyzed\n', label=b'diff.file_a') |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3422 ui.writenoi18n(b'+++ optimized\n', label=b'diff.file_b') |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3423 sm = difflib.SequenceMatcher(None, arevs, brevs) |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3424 for tag, alo, ahi, blo, bhi in sm.get_opcodes(): |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
3425 if tag in ('delete', 'replace'): |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3426 for c in arevs[alo:ahi]: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3427 ui.write(b'-%d\n' % c, label=b'diff.deleted') |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
3428 if tag in ('insert', 'replace'): |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3429 for c in brevs[blo:bhi]: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3430 ui.write(b'+%d\n' % c, label=b'diff.inserted') |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
3431 if tag == 'equal': |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3432 for c in arevs[alo:ahi]: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3433 ui.write(b' %d\n' % c) |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3434 return 1 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3435 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3436 func = revset.makematcher(tree) |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3437 revs = func(repo) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3438 if opts[b'show_set'] or (opts[b'show_set'] is None and ui.verbose): |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3439 ui.writenoi18n(b"* set:\n", stringutil.prettyrepr(revs), b"\n") |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3440 if not opts[b'show_revs']: |
32816
bcca357bb792
debugrevspec: add option to suppress list of computed revisions
Yuya Nishihara <yuya@tcha.org>
parents:
32815
diff
changeset
|
3441 return |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3442 for c in revs: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3443 ui.write(b"%d\n" % c) |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3444 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3445 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3446 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3447 b'debugserve', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3448 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3449 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3450 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3451 b'sshstdio', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3452 False, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3453 _(b'run an SSH server bound to process handles'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3454 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3455 (b'', b'logiofd', b'', _(b'file descriptor to log server I/O to')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3456 (b'', b'logiofile', b'', _(b'file to log server I/O to')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3457 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3458 b'', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3459 ) |
36556
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3460 def debugserve(ui, repo, **opts): |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3461 """run a server with advanced settings |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3462 |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3463 This command is similar to :hg:`serve`. It exists partially as a |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3464 workaround to the fact that ``hg serve --stdio`` must have specific |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3465 arguments for security reasons. |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3466 """ |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3467 opts = pycompat.byteskwargs(opts) |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3468 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3469 if not opts[b'sshstdio']: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3470 raise error.Abort(_(b'only --sshstdio is currently supported')) |
36556
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3471 |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3472 logfh = None |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3473 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3474 if opts[b'logiofd'] and opts[b'logiofile']: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3475 raise error.Abort(_(b'cannot use both --logiofd and --logiofile')) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3476 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3477 if opts[b'logiofd']: |
44123
52f8b07ad2f9
debugcommands: move away from line buffered output on binary stream
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44012
diff
changeset
|
3478 # Ideally we would be line buffered. But line buffering in binary |
52f8b07ad2f9
debugcommands: move away from line buffered output on binary stream
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44012
diff
changeset
|
3479 # mode isn't supported and emits a warning in Python 3.8+. Disabling |
52f8b07ad2f9
debugcommands: move away from line buffered output on binary stream
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44012
diff
changeset
|
3480 # buffering could have performance impacts. But since this isn't |
52f8b07ad2f9
debugcommands: move away from line buffered output on binary stream
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44012
diff
changeset
|
3481 # performance critical code, it should be fine. |
38322
275cc461b854
debugcommands: work around logiofd being a pipe and unseekable
Augie Fackler <augie@google.com>
parents:
38275
diff
changeset
|
3482 try: |
44123
52f8b07ad2f9
debugcommands: move away from line buffered output on binary stream
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44012
diff
changeset
|
3483 logfh = os.fdopen(int(opts[b'logiofd']), 'ab', 0) |
38322
275cc461b854
debugcommands: work around logiofd being a pipe and unseekable
Augie Fackler <augie@google.com>
parents:
38275
diff
changeset
|
3484 except OSError as e: |
275cc461b854
debugcommands: work around logiofd being a pipe and unseekable
Augie Fackler <augie@google.com>
parents:
38275
diff
changeset
|
3485 if e.errno != errno.ESPIPE: |
275cc461b854
debugcommands: work around logiofd being a pipe and unseekable
Augie Fackler <augie@google.com>
parents:
38275
diff
changeset
|
3486 raise |
275cc461b854
debugcommands: work around logiofd being a pipe and unseekable
Augie Fackler <augie@google.com>
parents:
38275
diff
changeset
|
3487 # can't seek a pipe, so `ab` mode fails on py3 |
44123
52f8b07ad2f9
debugcommands: move away from line buffered output on binary stream
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44012
diff
changeset
|
3488 logfh = os.fdopen(int(opts[b'logiofd']), 'wb', 0) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3489 elif opts[b'logiofile']: |
44123
52f8b07ad2f9
debugcommands: move away from line buffered output on binary stream
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44012
diff
changeset
|
3490 logfh = open(opts[b'logiofile'], b'ab', 0) |
36556
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3491 |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3492 s = wireprotoserver.sshserver(ui, repo, logfh=logfh) |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3493 s.serve_forever() |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3494 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3495 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3496 @command(b'debugsetparents', [], _(b'REV1 [REV2]')) |
30973
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3497 def debugsetparents(ui, repo, rev1, rev2=None): |
46201
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3498 """manually set the parents of the current working directory (DANGEROUS) |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3499 |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3500 This command is not what you are looking for and should not be used. Using |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3501 this command will most certainly results in slight corruption of the file |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3502 level histories withing your repository. DO NOT USE THIS COMMAND. |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3503 |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3504 The command update the p1 and p2 field in the dirstate, and not touching |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3505 anything else. This useful for writing repository conversion tools, but |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3506 should be used with extreme care. For example, neither the working |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3507 directory nor the dirstate is updated, so file status may be incorrect |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3508 after running this command. Only used if you are one of the few people that |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3509 deeply unstand both conversion tools and file level histories. If you are |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3510 reading this help, you are not one of this people (most of them sailed west |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3511 from Mithlond anyway. |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3512 |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3513 So one last time DO NOT USE THIS COMMAND. |
30973
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3514 |
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3515 Returns 0 on success. |
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3516 """ |
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3517 |
37146
8bac14ce5778
debugsetparents: avoid using "r1/r2" variable names for nodeids
Martin von Zweigbergk <martinvonz@google.com>
parents:
37123
diff
changeset
|
3518 node1 = scmutil.revsingle(repo, rev1).node() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3519 node2 = scmutil.revsingle(repo, rev2, b'null').node() |
30973
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3520 |
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3521 with repo.wlock(): |
37146
8bac14ce5778
debugsetparents: avoid using "r1/r2" variable names for nodeids
Martin von Zweigbergk <martinvonz@google.com>
parents:
37123
diff
changeset
|
3522 repo.setparents(node1, node2) |
30973
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3523 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3524 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3525 @command(b'debugsidedata', cmdutil.debugrevlogopts, _(b'-c|-m|FILE REV')) |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3526 def debugsidedata(ui, repo, file_, rev=None, **opts): |
43136
ba5b062a1388
debugsidedata: small doc improvement
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43117
diff
changeset
|
3527 """dump the side data for a cl/manifest/file revision |
ba5b062a1388
debugsidedata: small doc improvement
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43117
diff
changeset
|
3528 |
ba5b062a1388
debugsidedata: small doc improvement
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43117
diff
changeset
|
3529 Use --verbose to dump the sidedata content.""" |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3530 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3531 if opts.get(b'changelog') or opts.get(b'manifest') or opts.get(b'dir'): |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3532 if rev is not None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3533 raise error.CommandError(b'debugdata', _(b'invalid arguments')) |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3534 file_, rev = None, file_ |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3535 elif rev is None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3536 raise error.CommandError(b'debugdata', _(b'invalid arguments')) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3537 r = cmdutil.openstorage(repo, b'debugdata', file_, opts) |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3538 r = getattr(r, '_revlog', r) |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3539 try: |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3540 sidedata = r.sidedata(r.lookup(rev)) |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3541 except KeyError: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3542 raise error.Abort(_(b'invalid revision identifier %s') % rev) |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3543 if sidedata: |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3544 sidedata = list(sidedata.items()) |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3545 sidedata.sort() |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3546 ui.writenoi18n(b'%d sidedata entries\n' % len(sidedata)) |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3547 for key, value in sidedata: |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3548 ui.writenoi18n(b' entry-%04o size %d\n' % (key, len(value))) |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3549 if ui.verbose: |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3550 ui.writenoi18n(b' %s\n' % stringutil.pprint(value)) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3551 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3552 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3553 @command(b'debugssl', [], b'[SOURCE]', optionalrepo=True) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3554 def debugssl(ui, repo, source=None, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
3555 """test a secure connection to a server |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3556 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3557 This builds the certificate chain for the server on Windows, installing the |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3558 missing intermediates and trusted root via Windows Update if necessary. It |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3559 does nothing on other platforms. |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3560 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3561 If SOURCE is omitted, the 'default' path will be used. If a URL is given, |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3562 that server is used. See :hg:`help urls` for more information. |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3563 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3564 If the update succeeds, retry the original operation. Otherwise, the cause |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3565 of the SSL error is likely another issue. |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
3566 """ |
34645 | 3567 if not pycompat.iswindows: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3568 raise error.Abort( |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
3569 _(b'certificate chain building is only possible on Windows') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3570 ) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3571 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3572 if not source: |
33672
3c3066367d72
debugssl: allow a URL to be specified without a local repository
Matt Harbison <matt_harbison@yahoo.com>
parents:
33553
diff
changeset
|
3573 if not repo: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3574 raise error.Abort( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3575 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3576 b"there is no Mercurial repository here, and no " |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3577 b"server specified" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3578 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3579 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3580 source = b"default" |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3581 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3582 source, branches = hg.parseurl(ui.expandpath(source)) |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3583 url = util.url(source) |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3584 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3585 defaultport = {b'https': 443, b'ssh': 22} |
35005
88572b7e50fd
debugssl: convert port number to int (issue5757)
Yuya Nishihara <yuya@tcha.org>
parents:
34645
diff
changeset
|
3586 if url.scheme in defaultport: |
88572b7e50fd
debugssl: convert port number to int (issue5757)
Yuya Nishihara <yuya@tcha.org>
parents:
34645
diff
changeset
|
3587 try: |
88572b7e50fd
debugssl: convert port number to int (issue5757)
Yuya Nishihara <yuya@tcha.org>
parents:
34645
diff
changeset
|
3588 addr = (url.host, int(url.port or defaultport[url.scheme])) |
88572b7e50fd
debugssl: convert port number to int (issue5757)
Yuya Nishihara <yuya@tcha.org>
parents:
34645
diff
changeset
|
3589 except ValueError: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3590 raise error.Abort(_(b"malformed port number in URL")) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3591 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3592 raise error.Abort(_(b"only https and ssh connections are supported")) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3593 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3594 from . import win32 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3595 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3596 s = ssl.wrap_socket( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3597 socket.socket(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3598 ssl_version=ssl.PROTOCOL_TLS, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3599 cert_reqs=ssl.CERT_NONE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3600 ca_certs=None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3601 ) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3602 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3603 try: |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3604 s.connect(addr) |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3605 cert = s.getpeercert(True) |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3606 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3607 ui.status(_(b'checking the certificate chain for %s\n') % url.host) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3608 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3609 complete = win32.checkcertificatechain(cert, build=False) |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3610 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3611 if not complete: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3612 ui.status(_(b'certificate chain is incomplete, updating... ')) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3613 |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3614 if not win32.checkcertificatechain(cert): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3615 ui.status(_(b'failed.\n')) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3616 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3617 ui.status(_(b'done.\n')) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3618 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3619 ui.status(_(b'full certificate chain is available\n')) |
33493
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3620 finally: |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3621 s.close() |
9a9f95214f46
debug: add a method to check the state of, and built an SSL cert chain
Matt Harbison <matt_harbison@yahoo.com>
parents:
33438
diff
changeset
|
3622 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3623 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3624 @command( |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3625 b"debugbackupbundle", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3626 [ |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3627 ( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3628 b"", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3629 b"recover", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3630 b"", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3631 b"brings the specified changeset back into the repository", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3632 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3633 ] |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3634 + cmdutil.logopts, |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3635 _(b"hg debugbackupbundle [--recover HASH]"), |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3636 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3637 def debugbackupbundle(ui, repo, *pats, **opts): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3638 """lists the changesets available in backup bundles |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3639 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3640 Without any arguments, this command prints a list of the changesets in each |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3641 backup bundle. |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3642 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3643 --recover takes a changeset hash and unbundles the first bundle that |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3644 contains that hash, which puts that changeset back in your repository. |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3645 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3646 --verbose will print the entire commit message and the bundle path for that |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3647 backup. |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3648 """ |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3649 backups = list( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3650 filter( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3651 os.path.isfile, glob.glob(repo.vfs.join(b"strip-backup") + b"/*.hg") |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3652 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3653 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3654 backups.sort(key=lambda x: os.path.getmtime(x), reverse=True) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3655 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3656 opts = pycompat.byteskwargs(opts) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3657 opts[b"bundle"] = b"" |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3658 opts[b"force"] = None |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3659 limit = logcmdutil.getlimit(opts) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3660 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3661 def display(other, chlist, displayer): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3662 if opts.get(b"newest_first"): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3663 chlist.reverse() |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3664 count = 0 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3665 for n in chlist: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3666 if limit is not None and count >= limit: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3667 break |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3668 parents = [True for p in other.changelog.parents(n) if p != nullid] |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3669 if opts.get(b"no_merges") and len(parents) == 2: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3670 continue |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3671 count += 1 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3672 displayer.show(other[n]) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3673 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3674 recovernode = opts.get(b"recover") |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3675 if recovernode: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3676 if scmutil.isrevsymbol(repo, recovernode): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3677 ui.warn(_(b"%s already exists in the repo\n") % recovernode) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3678 return |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3679 elif backups: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3680 msg = _( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3681 b"Recover changesets using: hg debugbackupbundle --recover " |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3682 b"<changeset hash>\n\nAvailable backup changesets:" |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3683 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3684 ui.status(msg, label=b"status.removed") |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3685 else: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3686 ui.status(_(b"no backup changesets found\n")) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3687 return |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3688 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3689 for backup in backups: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3690 # Much of this is copied from the hg incoming logic |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3691 source = ui.expandpath(os.path.relpath(backup, encoding.getcwd())) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3692 source, branches = hg.parseurl(source, opts.get(b"branch")) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3693 try: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3694 other = hg.peer(repo, opts, source) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3695 except error.LookupError as ex: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3696 msg = _(b"\nwarning: unable to open bundle %s") % source |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3697 hint = _(b"\n(missing parent rev %s)\n") % short(ex.name) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3698 ui.warn(msg, hint=hint) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3699 continue |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3700 revs, checkout = hg.addbranchrevs( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3701 repo, other, branches, opts.get(b"rev") |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3702 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3703 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3704 if revs: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3705 revs = [other.lookup(rev) for rev in revs] |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3706 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3707 quiet = ui.quiet |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3708 try: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3709 ui.quiet = True |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3710 other, chlist, cleanupfn = bundlerepo.getremotechanges( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3711 ui, repo, other, revs, opts[b"bundle"], opts[b"force"] |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3712 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3713 except error.LookupError: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3714 continue |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3715 finally: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3716 ui.quiet = quiet |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3717 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3718 try: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3719 if not chlist: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3720 continue |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3721 if recovernode: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3722 with repo.lock(), repo.transaction(b"unbundle") as tr: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3723 if scmutil.isrevsymbol(other, recovernode): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3724 ui.status(_(b"Unbundling %s\n") % (recovernode)) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3725 f = hg.openpath(ui, source) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3726 gen = exchange.readbundle(ui, f, source) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3727 if isinstance(gen, bundle2.unbundle20): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3728 bundle2.applybundle( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3729 repo, |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3730 gen, |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3731 tr, |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3732 source=b"unbundle", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3733 url=b"bundle:" + source, |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3734 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3735 else: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3736 gen.apply(repo, b"unbundle", b"bundle:" + source) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3737 break |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3738 else: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3739 backupdate = encoding.strtolocal( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3740 time.strftime( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3741 "%a %H:%M, %Y-%m-%d", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3742 time.localtime(os.path.getmtime(source)), |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3743 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3744 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3745 ui.status(b"\n%s\n" % (backupdate.ljust(50))) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3746 if ui.verbose: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3747 ui.status(b"%s%s\n" % (b"bundle:".ljust(13), source)) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3748 else: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3749 opts[ |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3750 b"template" |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3751 ] = b"{label('status.modified', node|short)} {desc|firstline}\n" |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3752 displayer = logcmdutil.changesetdisplayer( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3753 ui, other, opts, False |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3754 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3755 display(other, chlist, displayer) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3756 displayer.close() |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3757 finally: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3758 cleanupfn() |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3759 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3760 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3761 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3762 b'debugsub', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3763 [(b'r', b'rev', b'', _(b'revision to check'), _(b'REV'))], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3764 _(b'[-r REV] [REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3765 ) |
30975
8e38fa360a12
debugcommands: move 'debugsub' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30974
diff
changeset
|
3766 def debugsub(ui, repo, rev=None): |
8e38fa360a12
debugcommands: move 'debugsub' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30974
diff
changeset
|
3767 ctx = scmutil.revsingle(repo, rev, None) |
8e38fa360a12
debugcommands: move 'debugsub' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30974
diff
changeset
|
3768 for k, v in sorted(ctx.substate.items()): |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3769 ui.writenoi18n(b'path %s\n' % k) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3770 ui.writenoi18n(b' source %s\n' % v[0]) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3771 ui.writenoi18n(b' revision %s\n' % v[1]) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3772 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3773 |
46464
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3774 @command(b'debugshell', optionalrepo=True) |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3775 def debugshell(ui, repo): |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3776 """run an interactive Python interpreter |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3777 |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3778 The local namespace is provided with a reference to the ui and |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3779 the repo instance (if available). |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3780 """ |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3781 import code |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3782 |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3783 imported_objects = { |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3784 'ui': ui, |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3785 'repo': repo, |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3786 } |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3787 |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3788 code.interact(local=imported_objects) |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3789 |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3790 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3791 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3792 b'debugsuccessorssets', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3793 [(b'', b'closest', False, _(b'return closest successors sets only'))], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3794 _(b'[REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3795 ) |
33274
68f3e819d41d
obsolete: closest divergent support
Boris Feld <boris.feld@octobus.net>
parents:
33273
diff
changeset
|
3796 def debugsuccessorssets(ui, repo, *revs, **opts): |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3797 """show set of successors for revision |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3798 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3799 A successors set of changeset A is a consistent group of revisions that |
33274
68f3e819d41d
obsolete: closest divergent support
Boris Feld <boris.feld@octobus.net>
parents:
33273
diff
changeset
|
3800 succeed A. It contains non-obsolete changesets only unless closests |
68f3e819d41d
obsolete: closest divergent support
Boris Feld <boris.feld@octobus.net>
parents:
33273
diff
changeset
|
3801 successors set is set. |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3802 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3803 In most cases a changeset A has a single successors set containing a single |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3804 successor (changeset A replaced by A'). |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3805 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3806 A changeset that is made obsolete with no successors are called "pruned". |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3807 Such changesets have no successors sets at all. |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3808 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3809 A changeset that has been "split" will have a successors set containing |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3810 more than one successor. |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3811 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3812 A changeset that has been rewritten in multiple different ways is called |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3813 "divergent". Such changesets have multiple successor sets (each of which |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3814 may also be split, i.e. have multiple successors). |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3815 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3816 Results are displayed as follows:: |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3817 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3818 <rev1> |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3819 <successors-1A> |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3820 <rev2> |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3821 <successors-2A> |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3822 <successors-2B1> <successors-2B2> <successors-2B3> |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3823 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3824 Here rev2 has two possible (i.e. divergent) successors sets. The first |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3825 holds one element, whereas the second holds three (i.e. the changeset has |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3826 been split). |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3827 """ |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3828 # passed to successorssets caching computation from one call to another |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3829 cache = {} |
36161
8eb13f5d5d3f
py3: convert context to bytes instead of str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35969
diff
changeset
|
3830 ctx2str = bytes |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3831 node2str = short |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3832 for rev in scmutil.revrange(repo, revs): |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3833 ctx = repo[rev] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3834 ui.write(b'%s\n' % ctx2str(ctx)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3835 for succsset in obsutil.successorssets( |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
3836 repo, ctx.node(), closest=opts['closest'], cache=cache |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3837 ): |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3838 if succsset: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3839 ui.write(b' ') |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3840 ui.write(node2str(succsset[0])) |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3841 for node in succsset[1:]: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3842 ui.write(b' ') |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3843 ui.write(node2str(node)) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3844 ui.write(b'\n') |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3845 |
44349
a0ec05d93c8e
cleanup: re-run black on the codebase
Augie Fackler <augie@google.com>
parents:
44336
diff
changeset
|
3846 |
44336
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
3847 @command(b'debugtagscache', []) |
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
3848 def debugtagscache(ui, repo): |
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
3849 """display the contents of .hg/cache/hgtagsfnodes1""" |
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
3850 cache = tagsmod.hgtagsfnodescache(repo.unfiltered()) |
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
3851 for r in repo: |
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
3852 node = repo[r].node() |
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
3853 tagsnode = cache.getfnode(node, computemissing=False) |
44384
e80da7a63264
tags: fix some type confusion exposed in python 3
Augie Fackler <augie@google.com>
parents:
44370
diff
changeset
|
3854 tagsnodedisplay = hex(tagsnode) if tagsnode else b'missing/invalid' |
e80da7a63264
tags: fix some type confusion exposed in python 3
Augie Fackler <augie@google.com>
parents:
44370
diff
changeset
|
3855 ui.write(b'%d %s %s\n' % (r, hex(node), tagsnodedisplay)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3856 |
44349
a0ec05d93c8e
cleanup: re-run black on the codebase
Augie Fackler <augie@google.com>
parents:
44336
diff
changeset
|
3857 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3858 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3859 b'debugtemplate', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3860 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3861 (b'r', b'rev', [], _(b'apply template on changesets'), _(b'REV')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3862 (b'D', b'define', [], _(b'define template keyword'), _(b'KEY=VALUE')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3863 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3864 _(b'[-r REV]... [-D KEY=VALUE]... TEMPLATE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3865 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3866 ) |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3867 def debugtemplate(ui, repo, tmpl, **opts): |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3868 """parse and apply a template |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3869 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3870 If -r/--rev is given, the template is processed as a log template and |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3871 applied to the given changesets. Otherwise, it is processed as a generic |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3872 template. |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3873 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3874 Use --verbose to print the parsed tree. |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3875 """ |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3876 revs = None |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
3877 if opts['rev']: |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3878 if repo is None: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3879 raise error.RepoError( |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
3880 _(b'there is no Mercurial repository here (.hg not found)') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3881 ) |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
3882 revs = scmutil.revrange(repo, opts['rev']) |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3883 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3884 props = {} |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
3885 for d in opts['define']: |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3886 try: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3887 k, v = (e.strip() for e in d.split(b'=', 1)) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3888 if not k or k == b'ui': |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3889 raise ValueError |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3890 props[k] = v |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3891 except ValueError: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3892 raise error.Abort(_(b'malformed keyword definition: %s') % d) |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3893 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3894 if ui.verbose: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3895 aliases = ui.configitems(b'templatealias') |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3896 tree = templater.parse(tmpl) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3897 ui.note(templater.prettyformat(tree), b'\n') |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3898 newtree = templater.expandaliases(tree, aliases) |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3899 if newtree != tree: |
43094
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3900 ui.notenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3901 b"* expanded:\n", templater.prettyformat(newtree), b'\n' |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3902 ) |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3903 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3904 if revs is None: |
35473
f1c54d003327
templater: move repo, ui and cache to per-engine resources
Yuya Nishihara <yuya@tcha.org>
parents:
35469
diff
changeset
|
3905 tres = formatter.templateresources(ui, repo) |
f1c54d003327
templater: move repo, ui and cache to per-engine resources
Yuya Nishihara <yuya@tcha.org>
parents:
35469
diff
changeset
|
3906 t = formatter.maketemplater(ui, tmpl, resources=tres) |
38361
d4fae9a0ab1f
templater: add function to look up symbols used in template
Yuya Nishihara <yuya@tcha.org>
parents:
38322
diff
changeset
|
3907 if ui.verbose: |
d4fae9a0ab1f
templater: add function to look up symbols used in template
Yuya Nishihara <yuya@tcha.org>
parents:
38322
diff
changeset
|
3908 kwds, funcs = t.symbolsuseddefault() |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3909 ui.writenoi18n(b"* keywords: %s\n" % b', '.join(sorted(kwds))) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3910 ui.writenoi18n(b"* functions: %s\n" % b', '.join(sorted(funcs))) |
36991
317382151ac3
templater: rename .render(mapping) to .renderdefault(mapping) (API)
Yuya Nishihara <yuya@tcha.org>
parents:
36960
diff
changeset
|
3911 ui.write(t.renderdefault(props)) |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3912 else: |
35928
c8e2d6ed1f9e
cmdutil: drop aliases for logcmdutil functions (API)
Yuya Nishihara <yuya@tcha.org>
parents:
35730
diff
changeset
|
3913 displayer = logcmdutil.maketemplater(ui, repo, tmpl) |
38361
d4fae9a0ab1f
templater: add function to look up symbols used in template
Yuya Nishihara <yuya@tcha.org>
parents:
38322
diff
changeset
|
3914 if ui.verbose: |
d4fae9a0ab1f
templater: add function to look up symbols used in template
Yuya Nishihara <yuya@tcha.org>
parents:
38322
diff
changeset
|
3915 kwds, funcs = displayer.t.symbolsuseddefault() |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3916 ui.writenoi18n(b"* keywords: %s\n" % b', '.join(sorted(kwds))) |
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3917 ui.writenoi18n(b"* functions: %s\n" % b', '.join(sorted(funcs))) |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3918 for r in revs: |
33114
1b6946f87c50
py3: use pycompat.strkwargs() to convert kwargs keys to str
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33113
diff
changeset
|
3919 displayer.show(repo[r], **pycompat.strkwargs(props)) |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3920 displayer.close() |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3921 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3922 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3923 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3924 b'debuguigetpass', |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
3925 [ |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
3926 (b'p', b'prompt', b'', _(b'prompt text'), _(b'TEXT')), |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
3927 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3928 _(b'[-p TEXT]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3929 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3930 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3931 def debuguigetpass(ui, prompt=b''): |
36800
15c050b5d599
ui: add debug commands to test interactive prompt
Yuya Nishihara <yuya@tcha.org>
parents:
36789
diff
changeset
|
3932 """show prompt to type password""" |
15c050b5d599
ui: add debug commands to test interactive prompt
Yuya Nishihara <yuya@tcha.org>
parents:
36789
diff
changeset
|
3933 r = ui.getpass(prompt) |
45783
e614eeb794f9
ui: remove excessive strtolocal() from debuguigetpass
Yuya Nishihara <yuya@tcha.org>
parents:
45777
diff
changeset
|
3934 if r is None: |
45777
07b0a687c01a
ui: ensure `getpass()` returns bytes
Matt Harbison <matt_harbison@yahoo.com>
parents:
45715
diff
changeset
|
3935 r = b"<default response>" |
44662
649fd6c3ed33
debugcommands: fix typo in debuguigetpass
Yuya Nishihara <yuya@tcha.org>
parents:
44639
diff
changeset
|
3936 ui.writenoi18n(b'response: %s\n' % r) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3937 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3938 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3939 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3940 b'debuguiprompt', |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
3941 [ |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
3942 (b'p', b'prompt', b'', _(b'prompt text'), _(b'TEXT')), |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
3943 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3944 _(b'[-p TEXT]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3945 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3946 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3947 def debuguiprompt(ui, prompt=b''): |
36800
15c050b5d599
ui: add debug commands to test interactive prompt
Yuya Nishihara <yuya@tcha.org>
parents:
36789
diff
changeset
|
3948 """show plain prompt""" |
15c050b5d599
ui: add debug commands to test interactive prompt
Yuya Nishihara <yuya@tcha.org>
parents:
36789
diff
changeset
|
3949 r = ui.prompt(prompt) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
3950 ui.writenoi18n(b'response: %s\n' % r) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3951 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3952 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3953 @command(b'debugupdatecaches', []) |
32305
ccef71de7d41
caches: introduce a 'debugupdatecaches' command
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32296
diff
changeset
|
3954 def debugupdatecaches(ui, repo, *pats, **opts): |
ccef71de7d41
caches: introduce a 'debugupdatecaches' command
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32296
diff
changeset
|
3955 """warm all known caches in the repository""" |
33438 | 3956 with repo.wlock(), repo.lock(): |
36958
b24cde12061b
debugupdatecache: also warm rev branch cache
Boris Feld <boris.feld@octobus.net>
parents:
36957
diff
changeset
|
3957 repo.updatecaches(full=True) |
32305
ccef71de7d41
caches: introduce a 'debugupdatecaches' command
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32296
diff
changeset
|
3958 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3959 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3960 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3961 b'debugupgraderepo', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3962 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3963 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3964 b'o', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3965 b'optimize', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3966 [], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3967 _(b'extra optimization to perform'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3968 _(b'NAME'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3969 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3970 (b'', b'run', False, _(b'performs an upgrade')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3971 (b'', b'backup', True, _(b'keep the old repository content around')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3972 (b'', b'changelog', None, _(b'select the changelog for upgrade')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3973 (b'', b'manifest', None, _(b'select the manifest for upgrade')), |
46012
7c539f0febbe
upgrade: add an explicite --filelogs arguments
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45957
diff
changeset
|
3974 (b'', b'filelogs', None, _(b'select all filelogs for upgrade')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3975 ], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3976 ) |
42840
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
3977 def debugupgraderepo(ui, repo, run=False, optimize=None, backup=True, **opts): |
30774
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3978 """upgrade a repository to use different features |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3979 |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3980 If no arguments are specified, the repository is evaluated for upgrade |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3981 and a list of problems and potential optimizations is printed. |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3982 |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3983 With ``--run``, a repository upgrade is performed. Behavior of the upgrade |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3984 can be influenced via additional arguments. More details will be provided |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3985 by the command output when run without ``--run``. |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3986 |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3987 During the upgrade, the repository will be locked and no writes will be |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3988 allowed. |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3989 |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3990 At the end of the upgrade, the repository may not be readable while new |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3991 repository data is swapped in. This window will be as long as it takes to |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3992 rename some directories inside the ``.hg`` directory. On most machines, this |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3993 should complete almost instantaneously and the chances of a consumer being |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
3994 unable to access the repository should be low. |
42840
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
3995 |
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
3996 By default, all revlog will be upgraded. You can restrict this using flag |
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
3997 such as `--manifest`: |
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
3998 |
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
3999 * `--manifest`: only optimize the manifest |
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
4000 * `--no-manifest`: optimize all revlog but the manifest |
42841
908ff446590e
upgrade: add an argument to control changelog upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42840
diff
changeset
|
4001 * `--changelog`: optimize the changelog only |
908ff446590e
upgrade: add an argument to control changelog upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42840
diff
changeset
|
4002 * `--no-changelog --no-manifest`: optimize filelogs only |
46012
7c539f0febbe
upgrade: add an explicite --filelogs arguments
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45957
diff
changeset
|
4003 * `--filelogs`: optimize the filelogs only |
46211
2dbe6053d49a
debugupgraderepo: minor documentation fix
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46208
diff
changeset
|
4004 * `--no-changelog --no-manifest --no-filelogs`: skip all revlog optimizations |
30774
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
4005 """ |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4006 return upgrade.upgraderepo( |
46208
083438d6f403
upgrade: drop support for old style optimization names
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46201
diff
changeset
|
4007 ui, repo, run=run, optimize=set(optimize), backup=backup, **opts |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4008 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4009 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4010 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4011 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4012 b'debugwalk', cmdutil.walkopts, _(b'[OPTION]... [FILE]...'), inferrepo=True |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4013 ) |
30978
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4014 def debugwalk(ui, repo, *pats, **opts): |
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4015 """show how files match on given patterns""" |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
4016 opts = pycompat.byteskwargs(opts) |
30978
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4017 m = scmutil.match(repo[None], pats, opts) |
38274
7c3a59e2971b
debugwalk: show matcher output only if -v/--verbose
Yuya Nishihara <yuya@tcha.org>
parents:
38273
diff
changeset
|
4018 if ui.verbose: |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
4019 ui.writenoi18n(b'* matcher:\n', stringutil.prettyrepr(m), b'\n') |
32402
a275186b989a
debugcommands: use repo[None].walk instead of repo.walk
Augie Fackler <augie@google.com>
parents:
32376
diff
changeset
|
4020 items = list(repo[None].walk(m)) |
30978
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4021 if not items: |
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4022 return |
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4023 f = lambda fn: fn |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4024 if ui.configbool(b'ui', b'slash') and pycompat.ossep != b'/': |
30978
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4025 f = lambda fn: util.normpath(fn) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4026 fmt = b'f %%-%ds %%-%ds %%s' % ( |
30978
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4027 max([len(abs) for abs in items]), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4028 max([len(repo.pathto(abs)) for abs in items]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4029 ) |
30978
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4030 for abs in items: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4031 line = fmt % ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4032 abs, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4033 f(repo.pathto(abs)), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4034 m.exact(abs) and b'exact' or b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4035 ) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4036 ui.write(b"%s\n" % line.rstrip()) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4037 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4038 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4039 @command(b'debugwhyunstable', [], _(b'REV')) |
36960
efc4fb344c05
debug: add debugwhyunstable that explains instabilities
Anton Shestakov <av6@dwimlabs.net>
parents:
36958
diff
changeset
|
4040 def debugwhyunstable(ui, repo, rev): |
efc4fb344c05
debug: add debugwhyunstable that explains instabilities
Anton Shestakov <av6@dwimlabs.net>
parents:
36958
diff
changeset
|
4041 """explain instabilities of a changeset""" |
37396
9966f44ecab4
debugwhyunstable: add support for revsets
Martin von Zweigbergk <martinvonz@google.com>
parents:
37350
diff
changeset
|
4042 for entry in obsutil.whyunstable(repo, scmutil.revsingle(repo, rev)): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4043 dnodes = b'' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4044 if entry.get(b'divergentnodes'): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4045 dnodes = ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4046 b' '.join( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4047 b'%s (%s)' % (ctx.hex(), ctx.phasestr()) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4048 for ctx in entry[b'divergentnodes'] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4049 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4050 + b' ' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4051 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4052 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4053 b'%s: %s%s %s\n' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4054 % (entry[b'instability'], dnodes, entry[b'reason'], entry[b'node']) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4055 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4056 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4057 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4058 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4059 b'debugwireargs', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4060 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4061 (b'', b'three', b'', b'three'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4062 (b'', b'four', b'', b'four'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4063 (b'', b'five', b'', b'five'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4064 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4065 + cmdutil.remoteopts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4066 _(b'REPO [OPTIONS]... [ONE [TWO]]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4067 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4068 ) |
30979
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4069 def debugwireargs(ui, repopath, *vals, **opts): |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
4070 opts = pycompat.byteskwargs(opts) |
30979
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4071 repo = hg.peer(ui, opts, repopath) |
32414
04baab18d60a
commands: move templates of common command options to cmdutil (API)
Yuya Nishihara <yuya@tcha.org>
parents:
32410
diff
changeset
|
4072 for opt in cmdutil.remoteopts: |
30979
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4073 del opts[opt[1]] |
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4074 args = {} |
43106
d783f945a701
py3: finish porting iteritems() to pycompat and remove source transformer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43094
diff
changeset
|
4075 for k, v in pycompat.iteritems(opts): |
30979
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4076 if v: |
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4077 args[k] = v |
35408
cd3392cb5818
py3: handle keyword arguments correctly in debugcommands.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35407
diff
changeset
|
4078 args = pycompat.strkwargs(args) |
30979
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4079 # run twice to check that we don't mess up the stream for the next command |
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4080 res1 = repo.debugwireargs(*vals, **args) |
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4081 res2 = repo.debugwireargs(*vals, **args) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4082 ui.write(b"%s\n" % res1) |
30979
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4083 if res1 != res2: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4084 ui.warn(b"%s\n" % res2) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4085 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4086 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4087 def _parsewirelangblocks(fh): |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4088 activeaction = None |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4089 blocklines = [] |
40174
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4090 lastindent = 0 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4091 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4092 for line in fh: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4093 line = line.rstrip() |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4094 if not line: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4095 continue |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4096 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4097 if line.startswith(b'#'): |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4098 continue |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4099 |
39099
efeeb73f54c3
debugcommands: fix a missing b prefix
Augie Fackler <augie@google.com>
parents:
39010
diff
changeset
|
4100 if not line.startswith(b' '): |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4101 # New block. Flush previous one. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4102 if activeaction: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4103 yield activeaction, blocklines |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4104 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4105 activeaction = line |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4106 blocklines = [] |
40174
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4107 lastindent = 0 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4108 continue |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4109 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4110 # Else we start with an indent. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4111 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4112 if not activeaction: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4113 raise error.Abort(_(b'indented line outside of block')) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4114 |
40174
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4115 indent = len(line) - len(line.lstrip()) |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4116 |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4117 # If this line is indented more than the last line, concatenate it. |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4118 if indent > lastindent and blocklines: |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4119 blocklines[-1] += line.lstrip() |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4120 else: |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4121 blocklines.append(line) |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4122 lastindent = indent |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4123 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4124 # Flush last block. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4125 if activeaction: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4126 yield activeaction, blocklines |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4127 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4128 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4129 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4130 b'debugwireproto', |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4131 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4132 (b'', b'localssh', False, _(b'start an SSH server for this repo')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4133 (b'', b'peer', b'', _(b'construct a specific version of the peer')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4134 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4135 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4136 b'noreadstderr', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4137 False, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4138 _(b'do not read from stderr of the remote'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4139 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4140 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4141 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4142 b'nologhandshake', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4143 False, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4144 _(b'do not log I/O related to the peer handshake'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4145 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4146 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4147 + cmdutil.remoteopts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4148 _(b'[PATH]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4149 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4150 ) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4151 def debugwireproto(ui, repo, path=None, **opts): |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4152 """send wire protocol commands to a server |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4153 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4154 This command can be used to issue wire protocol commands to remote |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4155 peers and to debug the raw data being exchanged. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4156 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4157 ``--localssh`` will start an SSH server against the current repository |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4158 and connect to that. By default, the connection will perform a handshake |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4159 and establish an appropriate peer instance. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4160 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4161 ``--peer`` can be used to bypass the handshake protocol and construct a |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4162 peer instance using the specified class type. Valid values are ``raw``, |
37483
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4163 ``http2``, ``ssh1``, and ``ssh2``. ``raw`` instances only allow sending |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4164 raw data payloads and don't support higher-level command actions. |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4165 |
36563
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4166 ``--noreadstderr`` can be used to disable automatic reading from stderr |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4167 of the peer (for SSH connections only). Disabling automatic reading of |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4168 stderr is useful for making output more deterministic. |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4169 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4170 Commands are issued via a mini language which is specified via stdin. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4171 The language consists of individual actions to perform. An action is |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4172 defined by a block. A block is defined as a line with no leading |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4173 space followed by 0 or more lines with leading space. Blocks are |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4174 effectively a high-level command with additional metadata. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4175 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4176 Lines beginning with ``#`` are ignored. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4177 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4178 The following sections denote available actions. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4179 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4180 raw |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4181 --- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4182 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4183 Send raw data to the server. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4184 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4185 The block payload contains the raw data to send as one atomic send |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4186 operation. The data may not actually be delivered in a single system |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4187 call: it depends on the abilities of the transport being used. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4188 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4189 Each line in the block is de-indented and concatenated. Then, that |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4190 value is evaluated as a Python b'' literal. This allows the use of |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4191 backslash escaping, etc. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4192 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4193 raw+ |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4194 ---- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4195 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4196 Behaves like ``raw`` except flushes output afterwards. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4197 |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4198 command <X> |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4199 ----------- |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4200 |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4201 Send a request to run a named command, whose name follows the ``command`` |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4202 string. |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4203 |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4204 Arguments to the command are defined as lines in this block. The format of |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4205 each line is ``<key> <value>``. e.g.:: |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4206 |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4207 command listkeys |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4208 namespace bookmarks |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4209 |
37483
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4210 If the value begins with ``eval:``, it will be interpreted as a Python |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4211 literal expression. Otherwise values are interpreted as Python b'' literals. |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4212 This allows sending complex types and encoding special byte sequences via |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4213 backslash escaping. |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4214 |
36563
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4215 The following arguments have special meaning: |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4216 |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4217 ``PUSHFILE`` |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4218 When defined, the *push* mechanism of the peer will be used instead |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4219 of the static request-response mechanism and the content of the |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4220 file specified in the value of this argument will be sent as the |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4221 command payload. |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4222 |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4223 This can be used to submit a local bundle file to the remote. |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4224 |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4225 batchbegin |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4226 ---------- |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4227 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4228 Instruct the peer to begin a batched send. |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4229 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4230 All ``command`` blocks are queued for execution until the next |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4231 ``batchsubmit`` block. |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4232 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4233 batchsubmit |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4234 ----------- |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4235 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4236 Submit previously queued ``command`` blocks as a batch request. |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4237 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4238 This action MUST be paired with a ``batchbegin`` action. |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4239 |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4240 httprequest <method> <path> |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4241 --------------------------- |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4242 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4243 (HTTP peer only) |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4244 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4245 Send an HTTP request to the peer. |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4246 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4247 The HTTP request line follows the ``httprequest`` action. e.g. ``GET /foo``. |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4248 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4249 Arguments of the form ``<key>: <value>`` are interpreted as HTTP request |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4250 headers to add to the request. e.g. ``Accept: foo``. |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4251 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4252 The following arguments are special: |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4253 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4254 ``BODYFILE`` |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4255 The content of the file defined as the value to this argument will be |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4256 transferred verbatim as the HTTP request body. |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4257 |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4258 ``frame <type> <flags> <payload>`` |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4259 Send a unified protocol frame as part of the request body. |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4260 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4261 All frames will be collected and sent as the body to the HTTP |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4262 request. |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4263 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4264 close |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4265 ----- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4266 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4267 Close the connection to the server. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4268 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4269 flush |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4270 ----- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4271 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4272 Flush data written to the server. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4273 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4274 readavailable |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4275 ------------- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4276 |
36851
31581528f242
debugwireproto: close the write end before consuming all available data
Yuya Nishihara <yuya@tcha.org>
parents:
36843
diff
changeset
|
4277 Close the write end of the connection and read all available data from |
31581528f242
debugwireproto: close the write end before consuming all available data
Yuya Nishihara <yuya@tcha.org>
parents:
36843
diff
changeset
|
4278 the server. |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4279 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4280 If the connection to the server encompasses multiple pipes, we poll both |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4281 pipes and read available data. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4282 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4283 readline |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4284 -------- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4285 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4286 Read a line of output from the server. If there are multiple output |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4287 pipes, reads only the main pipe. |
37010
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4288 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4289 ereadline |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4290 --------- |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4291 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4292 Like ``readline``, but read from the stderr pipe, if available. |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4293 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4294 read <X> |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4295 -------- |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4296 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4297 ``read()`` N bytes from the server's main output pipe. |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4298 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4299 eread <X> |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4300 --------- |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4301 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4302 ``read()`` N bytes from the server's stderr pipe, if available. |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4303 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4304 Specifying Unified Frame-Based Protocol Frames |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4305 ---------------------------------------------- |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4306 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4307 It is possible to emit a *Unified Frame-Based Protocol* by using special |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4308 syntax. |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4309 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4310 A frame is composed as a type, flags, and payload. These can be parsed |
37288
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4311 from a string of the form: |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4312 |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4313 <request-id> <stream-id> <stream-flags> <type> <flags> <payload> |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4314 |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4315 ``request-id`` and ``stream-id`` are integers defining the request and |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4316 stream identifiers. |
37060
2ec1fb9de638
wireproto: add request IDs to frames
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37054
diff
changeset
|
4317 |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4318 ``type`` can be an integer value for the frame type or the string name |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4319 of the type. The strings are defined in ``wireprotoframing.py``. e.g. |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4320 ``command-name``. |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4321 |
37288
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4322 ``stream-flags`` and ``flags`` are a ``|`` delimited list of flag |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4323 components. Each component (and there can be just one) can be an integer |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4324 or a flag name for stream flags or frame flags, respectively. Values are |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4325 resolved to integers and then bitwise OR'd together. |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4326 |
37290
cc5a040fe150
wireproto: syntax for encoding CBOR into frames
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37288
diff
changeset
|
4327 ``payload`` represents the raw frame payload. If it begins with |
cc5a040fe150
wireproto: syntax for encoding CBOR into frames
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37288
diff
changeset
|
4328 ``cbor:``, the following string is evaluated as Python code and the |
cc5a040fe150
wireproto: syntax for encoding CBOR into frames
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37288
diff
changeset
|
4329 resulting object is fed into a CBOR encoder. Otherwise it is interpreted |
cc5a040fe150
wireproto: syntax for encoding CBOR into frames
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37288
diff
changeset
|
4330 as a Python byte string literal. |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4331 """ |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4332 opts = pycompat.byteskwargs(opts) |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4333 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4334 if opts[b'localssh'] and not repo: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4335 raise error.Abort(_(b'--localssh requires a repository')) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4336 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4337 if opts[b'peer'] and opts[b'peer'] not in ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4338 b'raw', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4339 b'http2', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4340 b'ssh1', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4341 b'ssh2', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4342 ): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4343 raise error.Abort( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4344 _(b'invalid value for --peer'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4345 hint=_(b'valid values are "raw", "ssh1", and "ssh2"'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4346 ) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4347 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4348 if path and opts[b'localssh']: |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
4349 raise error.Abort(_(b'cannot specify --localssh with an explicit path')) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4350 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4351 if ui.interactive(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4352 ui.write(_(b'(waiting for commands on stdin)\n')) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4353 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4354 blocks = list(_parsewirelangblocks(ui.fin)) |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4355 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4356 proc = None |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4357 stdin = None |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4358 stdout = None |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4359 stderr = None |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4360 opener = None |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4361 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4362 if opts[b'localssh']: |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4363 # We start the SSH server in its own process so there is process |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4364 # separation. This prevents a whole class of potential bugs around |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4365 # shared state from interfering with server operation. |
37123
a8a902d7176e
procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37087
diff
changeset
|
4366 args = procutil.hgcmd() + [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4367 b'-R', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4368 repo.root, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4369 b'debugserve', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4370 b'--sshstdio', |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4371 ] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4372 proc = subprocess.Popen( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4373 pycompat.rapply(procutil.tonativestr, args), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4374 stdin=subprocess.PIPE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4375 stdout=subprocess.PIPE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4376 stderr=subprocess.PIPE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4377 bufsize=0, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4378 ) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4379 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4380 stdin = proc.stdin |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4381 stdout = proc.stdout |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4382 stderr = proc.stderr |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4383 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4384 # We turn the pipes into observers so we can log I/O. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4385 if ui.verbose or opts[b'peer'] == b'raw': |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4386 stdin = util.makeloggingfileobject( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4387 ui, proc.stdin, b'i', logdata=True |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4388 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4389 stdout = util.makeloggingfileobject( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4390 ui, proc.stdout, b'o', logdata=True |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4391 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4392 stderr = util.makeloggingfileobject( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4393 ui, proc.stderr, b'e', logdata=True |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4394 ) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4395 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4396 # --localssh also implies the peer connection settings. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4397 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4398 url = b'ssh://localserver' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4399 autoreadstderr = not opts[b'noreadstderr'] |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4400 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4401 if opts[b'peer'] == b'ssh1': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4402 ui.write(_(b'creating ssh peer for wire protocol version 1\n')) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4403 peer = sshpeer.sshv1peer( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4404 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4405 url, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4406 proc, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4407 stdin, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4408 stdout, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4409 stderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4410 None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4411 autoreadstderr=autoreadstderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4412 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4413 elif opts[b'peer'] == b'ssh2': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4414 ui.write(_(b'creating ssh peer for wire protocol version 2\n')) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4415 peer = sshpeer.sshv2peer( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4416 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4417 url, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4418 proc, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4419 stdin, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4420 stdout, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4421 stderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4422 None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4423 autoreadstderr=autoreadstderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4424 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4425 elif opts[b'peer'] == b'raw': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4426 ui.write(_(b'using raw connection to peer\n')) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4427 peer = None |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4428 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4429 ui.write(_(b'creating ssh peer from handshake results\n')) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4430 peer = sshpeer.makepeer( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4431 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4432 url, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4433 proc, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4434 stdin, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4435 stdout, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4436 stderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4437 autoreadstderr=autoreadstderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4438 ) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4439 |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4440 elif path: |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4441 # We bypass hg.peer() so we can proxy the sockets. |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4442 # TODO consider not doing this because we skip |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4443 # ``hg.wirepeersetupfuncs`` and potentially other useful functionality. |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4444 u = util.url(path) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4445 if u.scheme != b'http': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4446 raise error.Abort(_(b'only http:// paths are currently supported')) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4447 |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4448 url, authinfo = u.authinfo() |
37483
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4449 openerargs = { |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4450 'useragent': b'Mercurial debugwireproto', |
37483
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4451 } |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4452 |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4453 # Turn pipes/sockets into observers so we can log I/O. |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4454 if ui.verbose: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4455 openerargs.update( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4456 { |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4457 'loggingfh': ui, |
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4458 'loggingname': b's', |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4459 'loggingopts': { |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4460 'logdata': True, |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4461 'logdataapis': False, |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4462 }, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4463 } |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4464 ) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4465 |
37047
d3a9036d9ae9
util: don't log low-level I/O calls for HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37016
diff
changeset
|
4466 if ui.debugflag: |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4467 openerargs['loggingopts']['logdataapis'] = True |
37047
d3a9036d9ae9
util: don't log low-level I/O calls for HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37016
diff
changeset
|
4468 |
37048
a708e1e4d7a8
url: support suppressing Accept header
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37047
diff
changeset
|
4469 # Don't send default headers when in raw mode. This allows us to |
a708e1e4d7a8
url: support suppressing Accept header
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37047
diff
changeset
|
4470 # bypass most of the behavior of our URL handling code so we can |
a708e1e4d7a8
url: support suppressing Accept header
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37047
diff
changeset
|
4471 # have near complete control over what's sent on the wire. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4472 if opts[b'peer'] == b'raw': |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4473 openerargs['sendaccept'] = False |
37048
a708e1e4d7a8
url: support suppressing Accept header
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37047
diff
changeset
|
4474 |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4475 opener = urlmod.opener(ui, authinfo, **openerargs) |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4476 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4477 if opts[b'peer'] == b'http2': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4478 ui.write(_(b'creating http peer for wire protocol version 2\n')) |
37645
72b0982cd509
debugcommands: perform handshake when obtaining httpv2 peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37644
diff
changeset
|
4479 # We go through makepeer() because we need an API descriptor for |
72b0982cd509
debugcommands: perform handshake when obtaining httpv2 peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37644
diff
changeset
|
4480 # the peer instance to be useful. |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4481 with ui.configoverride( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4482 {(b'experimental', b'httppeer.advertise-v2'): True} |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4483 ): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4484 if opts[b'nologhandshake']: |
37718
ad1c07008e0b
debugcommands: ability to suppress logging of handshake
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37652
diff
changeset
|
4485 ui.pushbuffer() |
ad1c07008e0b
debugcommands: ability to suppress logging of handshake
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37652
diff
changeset
|
4486 |
37645
72b0982cd509
debugcommands: perform handshake when obtaining httpv2 peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37644
diff
changeset
|
4487 peer = httppeer.makepeer(ui, path, opener=opener) |
72b0982cd509
debugcommands: perform handshake when obtaining httpv2 peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37644
diff
changeset
|
4488 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4489 if opts[b'nologhandshake']: |
37718
ad1c07008e0b
debugcommands: ability to suppress logging of handshake
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37652
diff
changeset
|
4490 ui.popbuffer() |
ad1c07008e0b
debugcommands: ability to suppress logging of handshake
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37652
diff
changeset
|
4491 |
37645
72b0982cd509
debugcommands: perform handshake when obtaining httpv2 peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37644
diff
changeset
|
4492 if not isinstance(peer, httppeer.httpv2peer): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4493 raise error.Abort( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4494 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4495 b'could not instantiate HTTP peer for ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4496 b'wire protocol version 2' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4497 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4498 hint=_( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4499 b'the server may not have the feature ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4500 b'enabled or is not allowing this ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4501 b'client version' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4502 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4503 ) |
37645
72b0982cd509
debugcommands: perform handshake when obtaining httpv2 peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37644
diff
changeset
|
4504 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4505 elif opts[b'peer'] == b'raw': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4506 ui.write(_(b'using raw connection to peer\n')) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4507 peer = None |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4508 elif opts[b'peer']: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4509 raise error.Abort( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4510 _(b'--peer %s not supported with HTTP peers') % opts[b'peer'] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4511 ) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4512 else: |
37553
6b08cf6b900f
httppeer: allow opener to be passed to makepeer()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37552
diff
changeset
|
4513 peer = httppeer.makepeer(ui, path, opener=opener) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4514 |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4515 # We /could/ populate stdin/stdout with sock.makefile()... |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4516 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4517 raise error.Abort(_(b'unsupported connection configuration')) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4518 |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4519 batchedcommands = None |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4520 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4521 # Now perform actions based on the parsed wire language instructions. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4522 for action, lines in blocks: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4523 if action in (b'raw', b'raw+'): |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4524 if not stdin: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4525 raise error.Abort(_(b'cannot call raw/raw+ on this peer')) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4526 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4527 # Concatenate the data together. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4528 data = b''.join(l.lstrip() for l in lines) |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
4529 data = stringutil.unescapestr(data) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4530 stdin.write(data) |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4531 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4532 if action == b'raw+': |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4533 stdin.flush() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4534 elif action == b'flush': |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4535 if not stdin: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4536 raise error.Abort(_(b'cannot call flush on this peer')) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4537 stdin.flush() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4538 elif action.startswith(b'command'): |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4539 if not peer: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4540 raise error.Abort( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4541 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4542 b'cannot send commands unless peer instance ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4543 b'is available' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4544 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4545 ) |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4546 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4547 command = action.split(b' ', 1)[1] |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4548 |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4549 args = {} |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4550 for line in lines: |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4551 # We need to allow empty values. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4552 fields = line.lstrip().split(b' ', 1) |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4553 if len(fields) == 1: |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4554 key = fields[0] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4555 value = b'' |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4556 else: |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4557 key, value = fields |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4558 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4559 if value.startswith(b'eval:'): |
37483
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4560 value = stringutil.evalpythonliteral(value[5:]) |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4561 else: |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4562 value = stringutil.unescapestr(value) |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4563 |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4564 args[key] = value |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4565 |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4566 if batchedcommands is not None: |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4567 batchedcommands.append((command, args)) |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4568 continue |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4569 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4570 ui.status(_(b'sending %s command\n') % command) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4571 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4572 if b'PUSHFILE' in args: |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4573 with open(args[b'PUSHFILE'], 'rb') as fh: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4574 del args[b'PUSHFILE'] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4575 res, output = peer._callpush( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4576 command, fh, **pycompat.strkwargs(args) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4577 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4578 ui.status(_(b'result: %s\n') % stringutil.escapestr(res)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4579 ui.status( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4580 _(b'remote output: %s\n') % stringutil.escapestr(output) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4581 ) |
36563
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4582 else: |
37652
fe8c6f9f2914
debugcommands: use command executor for invoking commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37647
diff
changeset
|
4583 with peer.commandexecutor() as e: |
fe8c6f9f2914
debugcommands: use command executor for invoking commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37647
diff
changeset
|
4584 res = e.callcommand(command, args).result() |
fe8c6f9f2914
debugcommands: use command executor for invoking commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37647
diff
changeset
|
4585 |
37720
d715a85003c8
wireprotov2: establish a type for representing command response
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37718
diff
changeset
|
4586 if isinstance(res, wireprotov2peer.commandresponse): |
39577
d06834e0f48e
wireprotov2peer: stream decoded responses
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39468
diff
changeset
|
4587 val = res.objects() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4588 ui.status( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4589 _(b'response: %s\n') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4590 % stringutil.pprint(val, bprefix=True, indent=2) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4591 ) |
37720
d715a85003c8
wireprotov2: establish a type for representing command response
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37718
diff
changeset
|
4592 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4593 ui.status( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4594 _(b'response: %s\n') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4595 % stringutil.pprint(res, bprefix=True, indent=2) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4596 ) |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4597 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4598 elif action == b'batchbegin': |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4599 if batchedcommands is not None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4600 raise error.Abort(_(b'nested batchbegin not allowed')) |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4601 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4602 batchedcommands = [] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4603 elif action == b'batchsubmit': |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4604 # There is a batching API we could go through. But it would be |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4605 # difficult to normalize requests into function calls. It is easier |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4606 # to bypass this layer and normalize to commands + args. |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4607 ui.status( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4608 _(b'sending batch with %d sub-commands\n') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4609 % len(batchedcommands) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4610 ) |
43744
23ad4f0c1578
debugcommands: add assertions to convince pytype peer is not None
Augie Fackler <augie@google.com>
parents:
43743
diff
changeset
|
4611 assert peer is not None |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4612 for i, chunk in enumerate(peer._submitbatch(batchedcommands)): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4613 ui.status( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4614 _(b'response #%d: %s\n') % (i, stringutil.escapestr(chunk)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4615 ) |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4616 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4617 batchedcommands = None |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4618 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4619 elif action.startswith(b'httprequest '): |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4620 if not opener: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4621 raise error.Abort( |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
4622 _(b'cannot use httprequest without an HTTP peer') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4623 ) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4624 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4625 request = action.split(b' ', 2) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4626 if len(request) != 3: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4627 raise error.Abort( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4628 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4629 b'invalid httprequest: expected format is ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4630 b'"httprequest <method> <path>' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4631 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4632 ) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4633 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4634 method, httppath = request[1:] |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4635 headers = {} |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4636 body = None |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4637 frames = [] |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4638 for line in lines: |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4639 line = line.lstrip() |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4640 m = re.match(b'^([a-zA-Z0-9_-]+): (.*)$', line) |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4641 if m: |
39956
c421c22d3ad2
py3: convert HTTP request headers to str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39889
diff
changeset
|
4642 # Headers need to use native strings. |
c421c22d3ad2
py3: convert HTTP request headers to str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39889
diff
changeset
|
4643 key = pycompat.strurl(m.group(1)) |
c421c22d3ad2
py3: convert HTTP request headers to str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39889
diff
changeset
|
4644 value = pycompat.strurl(m.group(2)) |
c421c22d3ad2
py3: convert HTTP request headers to str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39889
diff
changeset
|
4645 headers[key] = value |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4646 continue |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4647 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4648 if line.startswith(b'BODYFILE '): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4649 with open(line.split(b' ', 1), b'rb') as fh: |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4650 body = fh.read() |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4651 elif line.startswith(b'frame '): |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4652 frame = wireprotoframing.makeframefromhumanstring( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4653 line[len(b'frame ') :] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4654 ) |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4655 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4656 frames.append(frame) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4657 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4658 raise error.Abort( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4659 _(b'unknown argument to httprequest: %s') % line |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4660 ) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4661 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4662 url = path + httppath |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4663 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4664 if frames: |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4665 body = b''.join(bytes(f) for f in frames) |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4666 |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4667 req = urlmod.urlreq.request(pycompat.strurl(url), body, headers) |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4668 |
37050
fddcb51b5084
wireproto: define permissions-based routing of HTTPv2 wire protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37048
diff
changeset
|
4669 # urllib.Request insists on using has_data() as a proxy for |
fddcb51b5084
wireproto: define permissions-based routing of HTTPv2 wire protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37048
diff
changeset
|
4670 # determining the request method. Override that to use our |
fddcb51b5084
wireproto: define permissions-based routing of HTTPv2 wire protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37048
diff
changeset
|
4671 # explicitly requested method. |
39101
a2fa7247ca70
debugcommands: get_method should always return a sysstr
Augie Fackler <augie@google.com>
parents:
39099
diff
changeset
|
4672 req.get_method = lambda: pycompat.sysstr(method) |
37050
fddcb51b5084
wireproto: define permissions-based routing of HTTPv2 wire protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37048
diff
changeset
|
4673 |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4674 try: |
37557
734515aca84d
wireproto: define and implement HTTP handshake to upgrade protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37553
diff
changeset
|
4675 res = opener.open(req) |
734515aca84d
wireproto: define and implement HTTP handshake to upgrade protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37553
diff
changeset
|
4676 body = res.read() |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4677 except util.urlerr.urlerror as e: |
39102
730e7d92a023
debugcommands: urlerror only has a read() method in Python 2
Augie Fackler <augie@google.com>
parents:
39101
diff
changeset
|
4678 # read() method must be called, but only exists in Python 2 |
730e7d92a023
debugcommands: urlerror only has a read() method in Python 2
Augie Fackler <augie@google.com>
parents:
39101
diff
changeset
|
4679 getattr(e, 'read', lambda: None)() |
37557
734515aca84d
wireproto: define and implement HTTP handshake to upgrade protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37553
diff
changeset
|
4680 continue |
734515aca84d
wireproto: define and implement HTTP handshake to upgrade protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37553
diff
changeset
|
4681 |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4682 ct = res.headers.get('Content-Type') |
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4683 if ct == 'application/mercurial-cbor': |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4684 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4685 _(b'cbor> %s\n') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4686 % stringutil.pprint( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4687 cborutil.decodeall(body), bprefix=True, indent=2 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4688 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4689 ) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4690 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4691 elif action == b'close': |
43744
23ad4f0c1578
debugcommands: add assertions to convince pytype peer is not None
Augie Fackler <augie@google.com>
parents:
43743
diff
changeset
|
4692 assert peer is not None |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4693 peer.close() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4694 elif action == b'readavailable': |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4695 if not stdout or not stderr: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4696 raise error.Abort( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4697 _(b'readavailable not available on this peer') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4698 ) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4699 |
36851
31581528f242
debugwireproto: close the write end before consuming all available data
Yuya Nishihara <yuya@tcha.org>
parents:
36843
diff
changeset
|
4700 stdin.close() |
31581528f242
debugwireproto: close the write end before consuming all available data
Yuya Nishihara <yuya@tcha.org>
parents:
36843
diff
changeset
|
4701 stdout.read() |
31581528f242
debugwireproto: close the write end before consuming all available data
Yuya Nishihara <yuya@tcha.org>
parents:
36843
diff
changeset
|
4702 stderr.read() |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4703 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4704 elif action == b'readline': |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4705 if not stdout: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4706 raise error.Abort(_(b'readline not available on this peer')) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4707 stdout.readline() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4708 elif action == b'ereadline': |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4709 if not stderr: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4710 raise error.Abort(_(b'ereadline not available on this peer')) |
37010
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4711 stderr.readline() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4712 elif action.startswith(b'read '): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4713 count = int(action.split(b' ', 1)[1]) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4714 if not stdout: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4715 raise error.Abort(_(b'read not available on this peer')) |
37010
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4716 stdout.read(count) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4717 elif action.startswith(b'eread '): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4718 count = int(action.split(b' ', 1)[1]) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4719 if not stderr: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4720 raise error.Abort(_(b'eread not available on this peer')) |
37010
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4721 stderr.read(count) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4722 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4723 raise error.Abort(_(b'unknown action: %s') % action) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4724 |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4725 if batchedcommands is not None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4726 raise error.Abort(_(b'unclosed "batchbegin" request')) |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4727 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4728 if peer: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4729 peer.close() |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4730 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4731 if proc: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4732 proc.kill() |