Mercurial > public > mercurial-scm > hg-stable
annotate mercurial/debugcommands.py @ 52674:d903647abbd3
pyupgrade: replace `dict(...)` with dict comprehensions
This was rewritten by the `dict_literals` fixer in `pyupgrade`. The last pass
over the code for this that I could find was a61ed1c2d7a7.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 06 Jan 2025 01:20:01 -0500 |
parents | 73ab542565e0 |
children |
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 # |
46819
d4ba4d51f85f
contributor: change mentions of mpm to olivia
Rapha?l Gom?s <rgomes@octobus.net>
parents:
46806
diff
changeset
|
3 # Copyright 2005-2016 Olivia Mackall <olivia@selenic.com> |
30411
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 |
51901
f4733654f144
typing: add `from __future__ import annotations` to most files
Matt Harbison <matt_harbison@yahoo.com>
parents:
51870
diff
changeset
|
8 from __future__ import annotations |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
9 |
47674
ff97e793ed36
dirstate-v2: Introduce a docket file
Simon Sapin <simon.sapin@octobus.net>
parents:
47568
diff
changeset
|
10 import binascii |
34144
902219a99901
debuginstall: use codecs.lookup() to detect invalid encoding
Yuya Nishihara <yuya@tcha.org>
parents:
34135
diff
changeset
|
11 import codecs |
34043
626a28f30dbd
debugcommands: stabilize output of debugbundle by having a custom repr
Augie Fackler <raf@durin42.com>
parents:
33553
diff
changeset
|
12 import collections |
46782
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
13 import contextlib |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
14 import difflib |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
15 import errno |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
16 import glob |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
17 import operator |
30534
86ebd2f61c31
debugcommands: move 'debugfsinfo' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30533
diff
changeset
|
18 import os |
44230
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
19 import platform |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
20 import random |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
21 import re |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
22 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
|
23 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
|
24 import stat |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
25 import subprocess |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
26 import sys |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
27 import time |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
28 |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
29 from .i18n import _ |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
30 from .node import ( |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
31 bin, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
32 hex, |
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 ) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
36 from . import ( |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
37 bundle2, |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
38 bundlerepo, |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
39 changegroup, |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
40 cmdutil, |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
41 color, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
42 context, |
41529
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
43 copies, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
44 dagparser, |
48849
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
45 dirstateutils, |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
46 encoding, |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
47 error, |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
48 exchange, |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
49 extensions, |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
50 filelog, |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
51 filemerge, |
38845
b9162ea1b815
fileset: extract language processing part to new module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
38842
diff
changeset
|
52 filesetlang, |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
53 formatter, |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
54 hg, |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
55 httppeer, |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
56 localrepo, |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
57 lock as lockmod, |
35928
c8e2d6ed1f9e
cmdutil: drop aliases for logcmdutil functions (API)
Yuya Nishihara <yuya@tcha.org>
parents:
35730
diff
changeset
|
58 logcmdutil, |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
59 manifest, |
44915
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
44662
diff
changeset
|
60 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
|
61 metadata, |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
62 obsolete, |
33148
4f49810a1011
obsutil: move 'successorssets' to the new modules
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33119
diff
changeset
|
63 obsutil, |
43677
0b7733719d21
utils: move finddirs() to pathutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
43554
diff
changeset
|
64 pathutil, |
32765
23734c0e361f
debugcommands: issue warning when repo has secret changesets (issue5589)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32714
diff
changeset
|
65 phases, |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
66 policy, |
30967
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
67 pvec, |
30528
20a42325fdef
py3: use pycompat.getcwd() instead of os.getcwd()
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30527
diff
changeset
|
68 pycompat, |
32376
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
32355
diff
changeset
|
69 registrar, |
30775
513d68a90398
repair: implement requirements checking for upgrades
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30774
diff
changeset
|
70 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
|
71 repoview, |
47810
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
72 requirements, |
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, |
49921
c84844cd523a
verify: also check dirstate
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49919
diff
changeset
|
89 verify, |
31249
9cdba6072b97
vfs: use 'vfs' module directly in 'mercurial.debugcommand'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31226
diff
changeset
|
90 vfs as vfsmod, |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
91 wireprotoframing, |
36556
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
92 wireprotoserver, |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
93 ) |
47309
e96f75857361
updatecaches: use the caches argument in `hg debugupdatecaches`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47153
diff
changeset
|
94 from .interfaces import repository |
50460
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
95 from .stabletailgraph import stabletailsort |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
96 from .utils import ( |
39468
e5eb67dea6e8
debugcommands: use our CBOR decoder
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39405
diff
changeset
|
97 cborutil, |
42041
3e47d1ec9da5
util: extract compression code in `mercurial.utils.compression`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42035
diff
changeset
|
98 compression, |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
99 dateutil, |
37123
a8a902d7176e
procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37087
diff
changeset
|
100 procutil, |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
101 stringutil, |
46907
ffd3e823a7e5
urlutil: extract `url` related code from `util` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46819
diff
changeset
|
102 urlutil, |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
37060
diff
changeset
|
103 ) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
104 |
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
|
105 from .revlogutils import ( |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49264
diff
changeset
|
106 debug as revlog_debug, |
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
|
107 nodemap, |
47810
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
108 rewrite, |
45665
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
109 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
|
110 ) |
39357
655b5b465953
revlog: split functionality related to deltas computation in a new module
Boris Feld <boris.feld@octobus.net>
parents:
39309
diff
changeset
|
111 |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
112 release = lockmod.release |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
113 |
45880
d7a508a75d72
strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
45838
diff
changeset
|
114 table = {} |
d7a508a75d72
strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
45838
diff
changeset
|
115 table.update(strip.command._table) |
d7a508a75d72
strip: move into core
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
45838
diff
changeset
|
116 command = registrar.command(table) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
117 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
118 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
119 @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
|
120 def debugancestor(ui, repo, *args): |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
121 """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
|
122 if len(args) == 3: |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
123 index, rev1, rev2 = args |
39823
24e493ec2229
py3: rename pycompat.getcwd() to encoding.getcwd() (API)
Matt Harbison <matt_harbison@yahoo.com>
parents:
39776
diff
changeset
|
124 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
|
125 lookup = r.lookup |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
126 elif len(args) == 2: |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
127 if not repo: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
128 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
|
129 _(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
|
130 ) |
30411
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
131 rev1, rev2 = args |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
132 r = repo.changelog |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
133 lookup = repo.lookup |
869d660b8669
debugcommands: introduce standalone module for debug commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
134 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
135 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
|
136 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
|
137 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
|
138 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
139 |
45149
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
140 @command(b'debugantivirusrunning', []) |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
141 def debugantivirusrunning(ui, repo): |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
142 """attempt to trigger an antivirus scanner to see if one is active""" |
51975
8d9767bf4adb
debugantivirusrunning: use bytes when opening a vfs file
Matt Harbison <matt_harbison@yahoo.com>
parents:
51901
diff
changeset
|
143 with repo.cachevfs.open(b'eicar-test-file.com', b'wb') as f: |
45149
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
144 f.write( |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
145 util.b85decode( |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
146 # 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
|
147 # 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
|
148 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
|
149 b'E<)&Nm5l)EmTEQR4qnHOhq9iNGnJx' |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
150 ) |
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 # Give an AV engine time to scan the file. |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
153 time.sleep(2) |
51975
8d9767bf4adb
debugantivirusrunning: use bytes when opening a vfs file
Matt Harbison <matt_harbison@yahoo.com>
parents:
51901
diff
changeset
|
154 util.unlink(repo.cachevfs.join(b'eicar-test-file.com')) |
45149
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
155 |
87047efbc6a6
debugcommands: create new debugantivirusrunning command
Augie Fackler <augie@google.com>
parents:
45107
diff
changeset
|
156 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
157 @command(b'debugapplystreamclonebundle', [], b'FILE') |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
158 def debugapplystreamclonebundle(ui, repo, fname): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
159 """apply a stream clone bundle file""" |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
160 f = hg.openpath(ui, fname) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
161 gen = exchange.readbundle(ui, f, fname) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
162 gen.apply(repo) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
163 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
164 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
165 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
166 b'debugbuilddag', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
167 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
168 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
169 b'm', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
170 b'mergeable-file', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
171 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
172 _(b'add single file mergeable changes'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
173 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
174 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
175 b'o', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
176 b'overwritten-file', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
177 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
178 _(b'add single file all revs overwrite'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
179 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
180 (b'n', b'new-file', None, _(b'add new file at each rev')), |
48705
b4bc9c4f925d
debugbuilddag: add a flag to allow running it from a non-empty repository
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48590
diff
changeset
|
181 ( |
b4bc9c4f925d
debugbuilddag: add a flag to allow running it from a non-empty repository
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48590
diff
changeset
|
182 b'', |
b4bc9c4f925d
debugbuilddag: add a flag to allow running it from a non-empty repository
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48590
diff
changeset
|
183 b'from-existing', |
b4bc9c4f925d
debugbuilddag: add a flag to allow running it from a non-empty repository
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48590
diff
changeset
|
184 None, |
b4bc9c4f925d
debugbuilddag: add a flag to allow running it from a non-empty repository
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48590
diff
changeset
|
185 _(b'continue from a non-empty repository'), |
b4bc9c4f925d
debugbuilddag: add a flag to allow running it from a non-empty repository
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48590
diff
changeset
|
186 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
187 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
188 _(b'[OPTION]... [TEXT]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
189 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
190 def debugbuilddag( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
191 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
192 repo, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
193 text=None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
194 mergeable_file=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
195 overwritten_file=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
196 new_file=False, |
48705
b4bc9c4f925d
debugbuilddag: add a flag to allow running it from a non-empty repository
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48590
diff
changeset
|
197 from_existing=False, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
198 ): |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
199 """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
|
200 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
201 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
|
202 command line. |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
203 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
204 Elements: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
205 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
206 - "+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
|
207 - "." is a single node based on the current default parent |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
208 - "$" resets the default parent to null (implied at the start); |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
209 otherwise the default parent is always the last node created |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
210 - "<p" sets the default parent to the backref p |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
211 - "*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
|
212 - "*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
|
213 - "/p2" is a merge of the preceding node and p2 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
214 - ":tag" defines a local tag for the preceding node |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
215 - "@branch" sets the named branch for subsequent nodes |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
216 - "#...\\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
|
217 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
218 Whitespace between the above elements is ignored. |
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 A backref is either |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
221 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
222 - 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
|
223 node, or |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
224 - 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
|
225 - empty to denote the default parent. |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
226 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
227 All string valued-elements are either strictly alphanumeric, or must |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
228 be enclosed in double quotes ("..."), with "\\" as escape character. |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
229 """ |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
230 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
231 if text is None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
232 ui.status(_(b"reading DAG from stdin\n")) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
233 text = ui.fin.read() |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
234 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
235 cl = repo.changelog |
48705
b4bc9c4f925d
debugbuilddag: add a flag to allow running it from a non-empty repository
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48590
diff
changeset
|
236 if len(cl) > 0 and not from_existing: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
237 raise error.Abort(_(b'repository is not empty')) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
238 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
239 # determine number of revs in DAG |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
240 total = 0 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
241 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
|
242 if type == b'n': |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
243 total += 1 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
244 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
245 if mergeable_file: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
246 linesperrev = 2 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
247 # make a file with k lines per rev |
49292
d44e3c45f0e4
py3: replace `pycompat.xrange` by `range`
Manuel Jacob <me@manueljacob.de>
parents:
49289
diff
changeset
|
248 initialmergedlines = [b'%d' % i for i in range(0, total * linesperrev)] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
249 initialmergedlines.append(b"") |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
250 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
251 tags = [] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
252 progress = ui.makeprogress( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
253 _(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
|
254 ) |
52105
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
255 merge_relaxed_sync = ui.configbool( |
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
256 b'experimental', |
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
257 b'relaxed-block-sync-merge', |
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
258 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
259 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
|
260 at = -1 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
261 atbranch = b'default' |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
262 nodeids = [] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
263 id = 0 |
38381
fce1c17493db
debugbuilddag: use progress helper
Martin von Zweigbergk <martinvonz@google.com>
parents:
38361
diff
changeset
|
264 progress.update(id) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
265 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
|
266 if type == b'n': |
52661
0e11e532c958
style: use `ui.xxxnoi18n()` methods instead of wrapping msg in `()`
Matt Harbison <matt_harbison@yahoo.com>
parents:
52600
diff
changeset
|
267 ui.notenoi18n(b'node %s\n' % pycompat.bytestr(data)) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
268 id, ps = data |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
269 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
270 files = [] |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
271 filecontent = {} |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
272 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
273 p2 = None |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
274 if mergeable_file: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
275 fn = b"mf" |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
276 p1 = repo[ps[0]] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
277 if len(ps) > 1: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
278 p2 = repo[ps[1]] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
279 pa = p1.ancestor(p2) |
52667
73ab542565e0
pyupgrade: run the `unpack_list_comprehension` fixer
Matt Harbison <matt_harbison@yahoo.com>
parents:
52661
diff
changeset
|
280 base, local, other = ( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
281 x[fn].data() for x in (pa, p1, p2) |
52667
73ab542565e0
pyupgrade: run the `unpack_list_comprehension` fixer
Matt Harbison <matt_harbison@yahoo.com>
parents:
52661
diff
changeset
|
282 ) |
52105
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
283 m3 = simplemerge.Merge3Text( |
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
284 base, |
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
285 local, |
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
286 other, |
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
287 relaxed_sync=merge_relaxed_sync, |
a021da4ec509
merge: add a config to allow conflict-free merge of changes on adjacent lines
Arseniy Alekseyev <aalekseyev@janestreet.com
parents:
51985
diff
changeset
|
288 ) |
48586
2dbee604a4f0
simplemerge: clarify names of functions that render conflict markers
Martin von Zweigbergk <martinvonz@google.com>
parents:
48585
diff
changeset
|
289 ml = [ |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
290 l.strip() |
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
291 for l in simplemerge.render_minimized(m3)[0] |
48586
2dbee604a4f0
simplemerge: clarify names of functions that render conflict markers
Martin von Zweigbergk <martinvonz@google.com>
parents:
48585
diff
changeset
|
292 ] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
293 ml.append(b"") |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
294 elif at > 0: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
295 ml = p1[fn].data().split(b"\n") |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
296 else: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
297 ml = initialmergedlines |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
298 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
|
299 mergedtext = b"\n".join(ml) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
300 files.append(fn) |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
301 filecontent[fn] = mergedtext |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
302 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
303 if overwritten_file: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
304 fn = b"of" |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
305 files.append(fn) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
306 filecontent[fn] = b"r%i\n" % id |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
307 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
308 if new_file: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
309 fn = b"nf%i" % id |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
310 files.append(fn) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
311 filecontent[fn] = b"r%i\n" % id |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
312 if len(ps) > 1: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
313 if not p2: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
314 p2 = repo[ps[1]] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
315 for fn in p2: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
316 if fn.startswith(b"nf"): |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
317 files.append(fn) |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
318 filecontent[fn] = p2[fn].data() |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
319 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
320 def fctxfn(repo, cx, path): |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
321 if path in filecontent: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
322 return context.memfilectx( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
323 repo, cx, path, filecontent[path] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
324 ) |
35406
dffc35a5be9f
debugbuilddag: create filectx instance in 'filectxfn' callback
Martin von Zweigbergk <martinvonz@google.com>
parents:
35402
diff
changeset
|
325 return None |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
326 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
327 if len(ps) == 0 or ps[0] < 0: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
328 pars = [None, None] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
329 elif len(ps) == 1: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
330 pars = [nodeids[ps[0]], None] |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
331 else: |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
332 pars = [nodeids[p] for p in ps] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
333 cx = context.memctx( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
334 repo, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
335 pars, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
336 b"r%i" % id, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
337 files, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
338 fctxfn, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
339 date=(id, 0), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
340 user=b"debugbuilddag", |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
341 extra={b'branch': atbranch}, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
342 ) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
343 nodeid = repo.commitctx(cx) |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
344 nodeids.append(nodeid) |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
345 at = id |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
346 elif type == b'l': |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
347 id, name = data |
52661
0e11e532c958
style: use `ui.xxxnoi18n()` methods instead of wrapping msg in `()`
Matt Harbison <matt_harbison@yahoo.com>
parents:
52600
diff
changeset
|
348 ui.notenoi18n(b'tag %s\n' % name) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
349 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
|
350 elif type == b'a': |
52661
0e11e532c958
style: use `ui.xxxnoi18n()` methods instead of wrapping msg in `()`
Matt Harbison <matt_harbison@yahoo.com>
parents:
52600
diff
changeset
|
351 ui.notenoi18n(b'branch %s\n' % data) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
352 atbranch = data |
38381
fce1c17493db
debugbuilddag: use progress helper
Martin von Zweigbergk <martinvonz@google.com>
parents:
38361
diff
changeset
|
353 progress.update(id) |
30412
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
354 |
945f8229b30d
debugcommands: move debugbuilddag
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30411
diff
changeset
|
355 if tags: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
356 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
|
357 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
358 |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
359 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
|
360 indent_string = b' ' * indent |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
361 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
|
362 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
363 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
|
364 % indent_string |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
365 ) |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
366 |
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
367 def showchunks(named): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
368 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
|
369 for deltadata in gen.deltaiter(): |
46724
a41565bef69f
changegroup: add v4 changegroup for revlog v2 exchange
Rapha?l Gom?s <rgomes@octobus.net>
parents:
46702
diff
changeset
|
370 node, p1, p2, cs, deltabase, delta, flags, sidedata = deltadata |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
371 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
372 b"%s%s %s %s %s %s %d\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
373 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
374 indent_string, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
375 hex(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
376 hex(p1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
377 hex(p2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
378 hex(cs), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
379 hex(deltabase), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
380 len(delta), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
381 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
382 ) |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
383 |
43977
7a2c49a3cbae
debug: drop unused variable assignments
Matt Harbison <matt_harbison@yahoo.com>
parents:
43884
diff
changeset
|
384 gen.changelogheader() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
385 showchunks(b"changelog") |
43977
7a2c49a3cbae
debug: drop unused variable assignments
Matt Harbison <matt_harbison@yahoo.com>
parents:
43884
diff
changeset
|
386 gen.manifestheader() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
387 showchunks(b"manifest") |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
388 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
|
389 fname = chunkdata[b'filename'] |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
390 showchunks(fname) |
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
391 else: |
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
392 if isinstance(gen, bundle2.unbundle20): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
393 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
|
394 gen.changelogheader() |
34299
311f6ccf8f23
debug: update debugbundle to use new deltaiter api
Durham Goode <durham@fb.com>
parents:
34145
diff
changeset
|
395 for deltadata in gen.deltaiter(): |
46724
a41565bef69f
changegroup: add v4 changegroup for revlog v2 exchange
Rapha?l Gom?s <rgomes@octobus.net>
parents:
46702
diff
changeset
|
396 node, p1, p2, cs, deltabase, delta, flags, sidedata = deltadata |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
397 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
|
398 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
399 |
33041
b482d80e041b
debugcommands: pass part, not read data, into _debugobsmarker()
Martin von Zweigbergk <martinvonz@google.com>
parents:
33040
diff
changeset
|
400 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
|
401 """display version and markers contained in 'data'""" |
33041
b482d80e041b
debugcommands: pass part, not read data, into _debugobsmarker()
Martin von Zweigbergk <martinvonz@google.com>
parents:
33040
diff
changeset
|
402 data = part.read() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
403 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
|
404 try: |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
405 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
|
406 except error.UnknownVersion as exc: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
407 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
|
408 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
|
409 ui.write(msg) |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
410 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
411 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
|
412 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
|
413 ui.write(msg) |
50955
2a7dba8658a7
debugbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50952
diff
changeset
|
414 fm = ui.formatter(b'debugobsolete', pycompat.byteskwargs(opts)) |
32550
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
415 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
|
416 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
|
417 fm.startitem() |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
418 fm.plain(indent_string) |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
419 cmdutil.showmarker(fm, m) |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
420 fm.end() |
b62b2b373bce
debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
32491
diff
changeset
|
421 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
422 |
33043
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
423 def _debugphaseheads(ui, data, indent=0): |
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
424 """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
|
425 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
|
426 headsbyphase = phases.binarydecode(data) |
33043
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
427 for phase in phases.allphases: |
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
428 for head in headsbyphase[phase]: |
e8c8d81eb864
bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com>
parents:
33041
diff
changeset
|
429 ui.write(indent_string) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
430 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
|
431 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
432 |
34043
626a28f30dbd
debugcommands: stabilize output of debugbundle by having a custom repr
Augie Fackler <raf@durin42.com>
parents:
33553
diff
changeset
|
433 def _quasirepr(thing): |
626a28f30dbd
debugcommands: stabilize output of debugbundle by having a custom repr
Augie Fackler <raf@durin42.com>
parents:
33553
diff
changeset
|
434 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
|
435 return b'{%s}' % ( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
436 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
|
437 ) |
34043
626a28f30dbd
debugcommands: stabilize output of debugbundle by having a custom repr
Augie Fackler <raf@durin42.com>
parents:
33553
diff
changeset
|
438 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
|
439 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
440 |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
441 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
|
442 """lists the contents of a bundle2""" |
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
443 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
|
444 raise error.Abort(_(b'not a bundle2 file')) |
52661
0e11e532c958
style: use `ui.xxxnoi18n()` methods instead of wrapping msg in `()`
Matt Harbison <matt_harbison@yahoo.com>
parents:
52600
diff
changeset
|
445 ui.writenoi18n(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
|
446 parttypes = opts.get('part_type', []) |
30510
a87e469201f9
debugcommands: move 'debugbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30412
diff
changeset
|
447 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
|
448 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
|
449 continue |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
450 msg = b'%s -- %s (mandatory: %r)\n' |
52661
0e11e532c958
style: use `ui.xxxnoi18n()` methods instead of wrapping msg in `()`
Matt Harbison <matt_harbison@yahoo.com>
parents:
52600
diff
changeset
|
451 ui.writenoi18n( |
0e11e532c958
style: use `ui.xxxnoi18n()` methods instead of wrapping msg in `()`
Matt Harbison <matt_harbison@yahoo.com>
parents:
52600
diff
changeset
|
452 msg % (part.type, _quasirepr(part.params), part.mandatory) |
0e11e532c958
style: use `ui.xxxnoi18n()` methods instead of wrapping msg in `()`
Matt Harbison <matt_harbison@yahoo.com>
parents:
52600
diff
changeset
|
453 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
454 if part.type == b'changegroup': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
455 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
|
456 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
|
457 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
|
458 _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
|
459 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
|
460 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
|
461 _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
|
462 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
|
463 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
|
464 _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
|
465 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
466 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
467 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
468 b'debugbundle', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
469 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
470 (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
|
471 (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
|
472 (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
|
473 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
474 _(b'FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
475 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
476 ) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
477 def debugbundle(ui, bundlepath, all=None, spec=None, **opts): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
478 """lists the contents of a bundle""" |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
479 with hg.openpath(ui, bundlepath) as f: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
480 if spec: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
481 spec = exchange.getbundlespec(ui, f) |
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' % spec) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
483 return |
30511
6da030496667
debugcommands: move debug{create,apply}streambundleclone to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30510
diff
changeset
|
484 |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
485 gen = exchange.readbundle(ui, f, bundlepath) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
486 if isinstance(gen, bundle2.unbundle20): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
487 return _debugbundle2(ui, gen, all=all, **opts) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
488 _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
|
489 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
490 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
491 @command(b'debugcapabilities', [], _(b'PATH'), norepo=True) |
35015
7ee2d859f720
debug: add a debugcapabilities commands
Boris Feld <boris.feld@octobus.net>
parents:
34645
diff
changeset
|
492 def debugcapabilities(ui, path, **opts): |
7ee2d859f720
debug: add a debugcapabilities commands
Boris Feld <boris.feld@octobus.net>
parents:
34645
diff
changeset
|
493 """lists the capabilities of a remote peer""" |
50956
ad9b7017ca22
debugcapabilities: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50955
diff
changeset
|
494 peer = hg.peer(ui, pycompat.byteskwargs(opts), path) |
46702
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
495 try: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
496 caps = peer.capabilities() |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
497 ui.writenoi18n(b'Main capabilities:\n') |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
498 for c in sorted(caps): |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
499 ui.write(b' %s\n' % c) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
500 b2caps = bundle2.bundle2caps(peer) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
501 if b2caps: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
502 ui.writenoi18n(b'Bundle2 capabilities:\n') |
49004
f254fc73d956
global: bulk replace simple pycompat.iteritems(x) with x.items()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48966
diff
changeset
|
503 for key, values in sorted(b2caps.items()): |
46702
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
504 ui.write(b' %s\n' % key) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
505 for v in values: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
506 ui.write(b' %s\n' % v) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
507 finally: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
508 peer.close() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
509 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
510 |
46538
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
511 @command( |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
512 b'debugchangedfiles', |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
513 [ |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
514 ( |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
515 b'', |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
516 b'compute', |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
517 False, |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
518 b"compute information instead of reading it from storage", |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
519 ), |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
520 ], |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
521 b'REV', |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
522 ) |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
523 def debugchangedfiles(ui, repo, rev, **opts): |
45665
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
524 """list the stored files changes for a revision""" |
48130
5105a9975407
errors: raise InputError from revsingle() iff revset provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents:
48128
diff
changeset
|
525 ctx = logcmdutil.revsingle(repo, rev, None) |
46538
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
526 files = None |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
527 |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
528 if opts['compute']: |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
529 files = metadata.compute_all_files_changes(ctx) |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
530 else: |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
531 sd = repo.changelog.sidedata(ctx.rev()) |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
532 files_block = sd.get(sidedata.SD_FILES) |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
533 if files_block is not None: |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
534 files = metadata.decode_files_sidedata(sd) |
c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46535
diff
changeset
|
535 if files is not None: |
45665
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
536 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
|
537 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
|
538 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
|
539 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
|
540 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
|
541 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
|
542 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
|
543 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
|
544 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
|
545 else: |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
546 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
|
547 |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
548 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
|
549 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
|
550 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
|
551 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
|
552 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
|
553 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
|
554 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
|
555 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
|
556 |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
557 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
|
558 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
|
559 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
|
560 |
308ca5528ee6
changing-files: add a debug command display changed files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45457
diff
changeset
|
561 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
562 @command(b'debugcheckstate', [], b'') |
30512
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
563 def debugcheckstate(ui, repo): |
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
564 """validate the correctness of the current dirstate""" |
49921
c84844cd523a
verify: also check dirstate
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49919
diff
changeset
|
565 errors = verify.verifier(repo)._verify_dirstate() |
30512
6bfb333a6f2f
debugcommands: move 'debugcheckstate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30511
diff
changeset
|
566 if errors: |
49921
c84844cd523a
verify: also check dirstate
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49919
diff
changeset
|
567 errstr = _(b"dirstate inconsistent with current parent's manifest") |
43679
72b454fae92e
debugcommands: don't shadow the error module
Augie Fackler <augie@google.com>
parents:
43677
diff
changeset
|
568 raise error.Abort(errstr) |
30513
c3bdc27121d1
debugcommands: move 'debugcommands' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30512
diff
changeset
|
569 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
570 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
571 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
572 b'debugcolor', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
573 [(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
|
574 b'hg debugcolor', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
575 ) |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
576 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
|
577 """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
|
578 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
|
579 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
|
580 return _debugdisplaystyle(ui) |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
581 else: |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
582 return _debugdisplaycolor(ui) |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
583 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
584 |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
585 def _debugdisplaycolor(ui): |
31136
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
586 ui = ui.copy() |
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
587 ui._styles.clear() |
31694
57a22f699179
color: stop mutating the default effects map
Matt Harbison <matt_harbison@yahoo.com>
parents:
31639
diff
changeset
|
588 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
|
589 ui._styles[effect] = effect |
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
590 if ui._terminfoparams: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
591 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
|
592 if k.startswith(b'color.'): |
31136
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
593 ui._styles[k] = k[6:] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
594 elif k.startswith(b'terminfo.'): |
31136
8fc55bbd2235
color: cleanup 'debugcolor' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31135
diff
changeset
|
595 ui._styles[k] = k[9:] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
596 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
|
597 # 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
|
598 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
|
599 for colorname, label in items: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
600 ui.write(b'%s\n' % colorname, label=label) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
601 |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
602 |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
603 def _debugdisplaystyle(ui): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
604 ui.write(_(b'available style:\n')) |
37823
0e9ddab2bac2
debugcolor: fix crash by empty styles (issue5856)
Yuya Nishihara <yuya@tcha.org>
parents:
37722
diff
changeset
|
605 if not ui._styles: |
0e9ddab2bac2
debugcolor: fix crash by empty styles (issue5856)
Yuya Nishihara <yuya@tcha.org>
parents:
37722
diff
changeset
|
606 return |
31135
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
607 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
|
608 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
|
609 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
|
610 if effects: |
c4e8fa2b1c40
color: move 'debugcolor' into the 'debugcommands' modules
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31091
diff
changeset
|
611 # 50 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
612 ui.write(b': ') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
613 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
|
614 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
|
615 ui.write(b'\n') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
616 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
617 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
618 @command(b'debugcreatestreamclonebundle', [], b'FILE') |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
619 def debugcreatestreamclonebundle(ui, repo, fname): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
620 """create a stream clone bundle file |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
621 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
622 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
|
623 revlog files. They are commonly used for cloning very quickly. |
50673
89556caf3c66
stream-clone: update debugcreatestreamclonebundle helps
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50650
diff
changeset
|
624 |
89556caf3c66
stream-clone: update debugcreatestreamclonebundle helps
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50650
diff
changeset
|
625 This command creates a "version 1" stream clone, which is deprecated in |
89556caf3c66
stream-clone: update debugcreatestreamclonebundle helps
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50650
diff
changeset
|
626 favor of newer versions of the stream protocol. Bundles using such newer |
89556caf3c66
stream-clone: update debugcreatestreamclonebundle helps
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50650
diff
changeset
|
627 versions can be generated using the `hg bundle` command. |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
628 """ |
32765
23734c0e361f
debugcommands: issue warning when repo has secret changesets (issue5589)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32714
diff
changeset
|
629 # 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
|
630 # 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
|
631 if phases.hassecret(repo): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
632 ui.warn( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
633 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
634 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
|
635 b'revisions)\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
636 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
637 ) |
32765
23734c0e361f
debugcommands: issue warning when repo has secret changesets (issue5589)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32714
diff
changeset
|
638 |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
639 requirements, gen = streamclone.generatebundlev1(repo) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
640 changegroup.writechunks(ui, gen, fname) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
641 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
642 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
|
643 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
644 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
645 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
646 b'debugdag', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
647 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
648 (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
|
649 (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
|
650 (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
|
651 (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
|
652 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
653 _(b'[OPTION]... [FILE [REV]...]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
654 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
655 ) |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
656 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
|
657 """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
|
658 |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
659 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
|
660 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
|
661 |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
662 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
|
663 """ |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
664 spaces = opts.get('spaces') |
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
665 dots = opts.get('dots') |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
666 if file_: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
667 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
|
668 revs = {int(r) for r in revs} |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
669 |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
670 def events(): |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
671 for r in rlog: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
672 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
|
673 if r in revs: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
674 yield b'l', (r, b"r%i" % r) |
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 elif repo: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
677 cl = repo.changelog |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
678 tags = opts.get('tags') |
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
679 branches = opts.get('branches') |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
680 if tags: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
681 labels = {} |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
682 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
|
683 labels.setdefault(cl.rev(n), []).append(l) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
684 |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
685 def events(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
686 b = b"default" |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
687 for r in cl: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
688 if branches: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
689 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
|
690 if newb != b: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
691 yield b'a', newb |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
692 b = newb |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
693 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
|
694 if tags: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
695 ls = labels.get(r) |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
696 if ls: |
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
697 for l in ls: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
698 yield b'l', (r, l) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
699 |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
700 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
701 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
|
702 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
703 for line in dagparser.dagtextlines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
704 events(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
705 addspaces=spaces, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
706 wraplabels=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
707 wrapannotations=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
708 wrapnonlinear=dots, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
709 usedots=dots, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
710 maxlinewidth=70, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
711 ): |
30523
625ccc95fa96
debugcommands: move 'debugdag' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30514
diff
changeset
|
712 ui.write(line) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
713 ui.write(b"\n") |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
714 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
715 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
716 @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
|
717 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
|
718 """dump the contents of a data file revision""" |
50957
4135e7271b9e
debugdata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50956
diff
changeset
|
719 if opts.get('changelog') or opts.get('manifest') or opts.get('dir'): |
30524
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
720 if rev is not None: |
50578
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
721 raise error.InputError( |
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
722 _(b'cannot specify a revision with other arguments') |
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
723 ) |
30524
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
724 file_, rev = None, file_ |
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
725 elif rev is None: |
50578
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
726 raise error.InputError(_(b'please specify a revision')) |
50957
4135e7271b9e
debugdata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50956
diff
changeset
|
727 r = cmdutil.openstorage( |
4135e7271b9e
debugdata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50956
diff
changeset
|
728 repo, b'debugdata', file_, pycompat.byteskwargs(opts) |
4135e7271b9e
debugdata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50956
diff
changeset
|
729 ) |
30524
cdd1885d0f2f
debugcommands: move 'debugrevlogopts' into the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30523
diff
changeset
|
730 try: |
42789
127d57e950e0
rawdata: update callers in debugcommands
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42683
diff
changeset
|
731 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
|
732 except KeyError: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
733 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
|
734 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
735 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
736 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
737 b'debugdate', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
738 [(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
|
739 _(b'[-e] DATE [RANGE]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
740 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
741 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
742 ) |
30525
ef1353c283e3
debugcommands: move 'debugdate' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30524
diff
changeset
|
743 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
|
744 """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
|
745 if opts["extended"]: |
43884
38d6aa768310
debugcommands: finish moving `extendeddateformats` from util to dateutil
Matt Harbison <matt_harbison@yahoo.com>
parents:
43744
diff
changeset
|
746 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
|
747 else: |
36636
c6061cadb400
util: extract all date-related utils in utils/dateutil module
Boris Feld <boris.feld@octobus.net>
parents:
36616
diff
changeset
|
748 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
|
749 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
|
750 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
|
751 if range: |
36636
c6061cadb400
util: extract all date-related utils in utils/dateutil module
Boris Feld <boris.feld@octobus.net>
parents:
36616
diff
changeset
|
752 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
|
753 ui.writenoi18n(b"match: %s\n" % m(d[0])) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
754 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
755 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
756 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
757 b'debugdeltachain', |
51077
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
758 [ |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
759 ( |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
760 b'r', |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
761 b'rev', |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
762 [], |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
763 _('restrict processing to these revlog revisions'), |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
764 ), |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
765 ( |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
766 b'', |
51080
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
767 b'all-info', |
51081
786b6225793a
debug-delta-chain: print less data by default
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51080
diff
changeset
|
768 False, |
51080
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
769 _('compute all information unless specified otherwise'), |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
770 ), |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
771 ( |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
772 b'', |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
773 b'size-info', |
51080
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
774 None, |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
775 _('compute information related to deltas size'), |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
776 ), |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
777 ( |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
778 b'', |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
779 b'dist-info', |
51080
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
780 None, |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
781 _('compute information related to base distance'), |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
782 ), |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
783 ( |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
784 b'', |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
785 b'sparse-info', |
51080
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
786 None, |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
787 _('compute information related to sparse read'), |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
788 ), |
51077
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
789 ] |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
790 + cmdutil.debugrevlogopts |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
791 + cmdutil.formatteropts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
792 _(b'-c|-m|FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
793 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
794 ) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
795 def debugdeltachain(ui, repo, file_=None, **opts): |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
796 """dump information about delta chains in a revlog |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
797 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
798 Output can be templatized. Available template keywords are: |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
799 |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
800 :``rev``: revision number |
49242
75d0775dce7f
debugdeltachain: also display p1/p2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49240
diff
changeset
|
801 :``p1``: parent 1 revision number (for reference) |
75d0775dce7f
debugdeltachain: also display p1/p2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49240
diff
changeset
|
802 :``p2``: parent 2 revision number (for reference) |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
803 |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
804 :``chainid``: delta chain identifier (numbered by unique base) |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
805 :``chainlen``: delta chain length to this revision |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
806 |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
807 :``prevrev``: previous revision in delta chain |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
808 :``deltatype``: role of delta / how it was computed |
49243
e7d23c512d3d
debugdeltachain: document the possible value for deltatype
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49242
diff
changeset
|
809 - base: a full snapshot |
e7d23c512d3d
debugdeltachain: document the possible value for deltatype
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49242
diff
changeset
|
810 - snap: an intermediate snapshot |
e7d23c512d3d
debugdeltachain: document the possible value for deltatype
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49242
diff
changeset
|
811 - p1: a delta against the first parent |
e7d23c512d3d
debugdeltachain: document the possible value for deltatype
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49242
diff
changeset
|
812 - p2: a delta against the second parent |
49244
13e523228623
debugdeltachain: detect a special case where parents are "skipped"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49243
diff
changeset
|
813 - skip1: a delta against the same base as p1 |
13e523228623
debugdeltachain: detect a special case where parents are "skipped"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49243
diff
changeset
|
814 (when p1 has empty delta |
13e523228623
debugdeltachain: detect a special case where parents are "skipped"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49243
diff
changeset
|
815 - skip2: a delta against the same base as p2 |
13e523228623
debugdeltachain: detect a special case where parents are "skipped"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49243
diff
changeset
|
816 (when p2 has empty delta |
49243
e7d23c512d3d
debugdeltachain: document the possible value for deltatype
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49242
diff
changeset
|
817 - prev: a delta against the previous revision |
e7d23c512d3d
debugdeltachain: document the possible value for deltatype
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49242
diff
changeset
|
818 - other: a delta against an arbitrary revision |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
819 |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
820 :``compsize``: compressed size of revision |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
821 :``uncompsize``: uncompressed size of revision |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
822 :``chainsize``: total size of compressed revisions in chain |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
823 :``chainratio``: total chain size divided by uncompressed revision size |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
824 (new delta chains typically start at ratio 2.00) |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
825 |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
826 :``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
|
827 of this revision |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
828 :``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
|
829 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
|
830 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
|
831 the delta chain for this revision |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
832 :``extraratio``: extradist divided by chainsize; another representation of |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
833 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
|
834 |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
835 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
|
836 are available: |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
837 |
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
838 :``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
|
839 (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
|
840 :``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
|
841 :``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
|
842 :``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
|
843 |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
844 It is possible to select the information to be computed, this can provide a |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
845 noticeable speedup to the command in some cases. |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
846 |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
847 Always computed: |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
848 |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
849 - ``rev`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
850 - ``p1`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
851 - ``p2`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
852 - ``chainid`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
853 - ``chainlen`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
854 - ``prevrev`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
855 - ``deltatype`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
856 |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
857 Computed with --no-size-info |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
858 |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
859 - ``compsize`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
860 - ``uncompsize`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
861 - ``chainsize`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
862 - ``chainratio`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
863 |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
864 Computed with --no-dist-info |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
865 |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
866 - ``lindist`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
867 - ``extradist`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
868 - ``extraratio`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
869 |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
870 Skipped with --no-sparse-info |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
871 |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
872 - ``readsize`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
873 - ``largestblock`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
874 - ``readdensity`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
875 - ``srchunks`` |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
876 |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
877 -- |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
878 |
35082
5cbbef8d2a57
debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net>
parents:
35016
diff
changeset
|
879 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
|
880 """ |
51077
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
881 revs = None |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
882 revs_opt = opts.pop('rev', []) |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
883 if revs_opt: |
810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51075
diff
changeset
|
884 revs = [int(r) for r in revs_opt] |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
885 |
51081
786b6225793a
debug-delta-chain: print less data by default
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51080
diff
changeset
|
886 all_info = opts.pop('all_info', False) |
51080
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
887 size_info = opts.pop('size_info', None) |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
888 if size_info is None: |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
889 size_info = all_info |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
890 dist_info = opts.pop('dist_info', None) |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
891 if dist_info is None: |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
892 dist_info = all_info |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
893 sparse_info = opts.pop('sparse_info', None) |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
894 if sparse_info is None: |
2d30d1ba0371
debugdeltachain: add a parameter to display all info
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51078
diff
changeset
|
895 sparse_info = all_info |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
896 |
51075
d7f975e49f20
delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51064
diff
changeset
|
897 revlog = cmdutil.openrevlog( |
50958
32fe4af9971d
debugdeltachain: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50957
diff
changeset
|
898 repo, b'debugdeltachain', file_, pycompat.byteskwargs(opts) |
32fe4af9971d
debugdeltachain: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50957
diff
changeset
|
899 ) |
32fe4af9971d
debugdeltachain: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50957
diff
changeset
|
900 fm = ui.formatter(b'debugdeltachain', pycompat.byteskwargs(opts)) |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
901 |
51078
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
902 lines = revlog_debug.debug_delta_chain( |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
903 revlog, |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
904 revs=revs, |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
905 size_info=size_info, |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
906 dist_info=dist_info, |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
907 sparse_info=sparse_info, |
752e380c5702
debug-delta-chain: add options to control what we compute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51077
diff
changeset
|
908 ) |
51075
d7f975e49f20
delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51064
diff
changeset
|
909 # first entry is the header |
d7f975e49f20
delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51064
diff
changeset
|
910 header = next(lines) |
d7f975e49f20
delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51064
diff
changeset
|
911 fm.plain(header) |
d7f975e49f20
delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51064
diff
changeset
|
912 for entry in lines: |
d7f975e49f20
delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51064
diff
changeset
|
913 label = b' '.join(e[0] for e in entry) |
d7f975e49f20
delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51064
diff
changeset
|
914 format = b' '.join(e[1] for e in entry) |
d7f975e49f20
delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51064
diff
changeset
|
915 values = [e[3] for e in entry] |
52674
d903647abbd3
pyupgrade: replace `dict(...)` with dict comprehensions
Matt Harbison <matt_harbison@yahoo.com>
parents:
52667
diff
changeset
|
916 data = {e[2]: e[3] for e in entry} |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
917 fm.startitem() |
51075
d7f975e49f20
delta-chain: move the debugdeltachain command in revlogutils
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51064
diff
changeset
|
918 fm.write(label, format, *values, **data) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
919 fm.plain(b'\n') |
30550
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
920 fm.end() |
342d0cb4f446
debugcommands: sort command order
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30538
diff
changeset
|
921 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
922 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
923 @command( |
49249
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
924 b'debug-delta-find', |
49730
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
925 cmdutil.debugrevlogopts |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
926 + cmdutil.formatteropts |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
927 + [ |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
928 ( |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
929 b'', |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
930 b'source', |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
931 b'full', |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
932 _(b'input data feed to the process (full, storage, p1, p2, prev)'), |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
933 ), |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
934 ], |
49249
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
935 _(b'-c|-m|FILE REV'), |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
936 optionalrepo=True, |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
937 ) |
49730
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
938 def debugdeltafind(ui, repo, arg_1, arg_2=None, source=b'full', **opts): |
49249
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
939 """display the computation to get to a valid delta for storing REV |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
940 |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
941 This command will replay the process used to find the "best" delta to store |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
942 a revision and display information about all the steps used to get to that |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
943 result. |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
944 |
49730
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
945 By default, the process is fed with a the full-text for the revision. This |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
946 can be controlled with the --source flag. |
266bb5c86f4b
debug-delta-find: add a --source option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49487
diff
changeset
|
947 |
49249
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
948 The revision use the revision number of the target storage (not changelog |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
949 revision number). |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
950 |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
951 note: the process is initiated from a full text of the revision to store. |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
952 """ |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
953 if arg_2 is None: |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
954 file_ = None |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
955 rev = arg_1 |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
956 else: |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
957 file_ = arg_1 |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
958 rev = arg_2 |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
959 |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
960 rev = int(rev) |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
961 |
50959
f7c35a645c2e
debugdeltafind: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50958
diff
changeset
|
962 revlog = cmdutil.openrevlog( |
f7c35a645c2e
debugdeltafind: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50958
diff
changeset
|
963 repo, b'debugdeltachain', file_, pycompat.byteskwargs(opts) |
f7c35a645c2e
debugdeltafind: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50958
diff
changeset
|
964 ) |
49249
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
965 p1r, p2r = revlog.parentrevs(rev) |
49790
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
966 |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
967 if source == b'full': |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
968 base_rev = nullrev |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
969 elif source == b'storage': |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
970 base_rev = revlog.deltaparent(rev) |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
971 elif source == b'p1': |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
972 base_rev = p1r |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
973 elif source == b'p2': |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
974 base_rev = p2r |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
975 elif source == b'prev': |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
976 base_rev = rev - 1 |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
977 else: |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
978 raise error.InputError(b"invalid --source value: %s" % source) |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
979 |
4302db0f54c8
find-delta: move most of the debug-find-delta code in the debug module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49775
diff
changeset
|
980 revlog_debug.debug_delta_find(ui, revlog, rev, base_rev=base_rev) |
49249
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
981 |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
982 |
b909dd35d9ab
deltas: add a debug-delta-find command to analyse delta search
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49244
diff
changeset
|
983 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
984 b'debugdirstate|debugstate', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
985 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
986 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
987 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
988 b'nodates', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
989 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
990 _(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
|
991 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
992 (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
|
993 (b'', b'datesort', None, _(b'sort by saved mtime')), |
47683
284a20269a97
dirstate-v2: Separate iterators for dirfoldmap and debugdirstate
Simon Sapin <simon.sapin@octobus.net>
parents:
47682
diff
changeset
|
994 ( |
284a20269a97
dirstate-v2: Separate iterators for dirfoldmap and debugdirstate
Simon Sapin <simon.sapin@octobus.net>
parents:
47682
diff
changeset
|
995 b'', |
48849
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
996 b'docket', |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
997 False, |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
998 _(b'display the docket (metadata file) instead'), |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
999 ), |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1000 ( |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1001 b'', |
47683
284a20269a97
dirstate-v2: Separate iterators for dirfoldmap and debugdirstate
Simon Sapin <simon.sapin@octobus.net>
parents:
47682
diff
changeset
|
1002 b'all', |
284a20269a97
dirstate-v2: Separate iterators for dirfoldmap and debugdirstate
Simon Sapin <simon.sapin@octobus.net>
parents:
47682
diff
changeset
|
1003 False, |
284a20269a97
dirstate-v2: Separate iterators for dirfoldmap and debugdirstate
Simon Sapin <simon.sapin@octobus.net>
parents:
47682
diff
changeset
|
1004 _(b'display dirstate-v2 tree nodes that would not exist in v1'), |
284a20269a97
dirstate-v2: Separate iterators for dirfoldmap and debugdirstate
Simon Sapin <simon.sapin@octobus.net>
parents:
47682
diff
changeset
|
1005 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1006 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1007 _(b'[OPTION]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1008 ) |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
1009 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
|
1010 """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
|
1011 |
48849
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1012 if opts.get("docket"): |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1013 if not repo.dirstate._use_dirstate_v2: |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1014 raise error.Abort(_(b'dirstate v1 does not have a docket')) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1015 |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1016 docket = repo.dirstate._map.docket |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1017 ( |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1018 start_offset, |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1019 root_nodes, |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1020 nodes_with_entry, |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1021 nodes_with_copy, |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1022 unused_bytes, |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1023 _unused, |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1024 ignore_pattern, |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1025 ) = dirstateutils.v2.TREE_METADATA.unpack(docket.tree_metadata) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1026 |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1027 ui.write(_(b"size of dirstate data: %d\n") % docket.data_size) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1028 ui.write(_(b"data file uuid: %s\n") % docket.uuid) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1029 ui.write(_(b"start offset of root nodes: %d\n") % start_offset) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1030 ui.write(_(b"number of root nodes: %d\n") % root_nodes) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1031 ui.write(_(b"nodes with entries: %d\n") % nodes_with_entry) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1032 ui.write(_(b"nodes with copies: %d\n") % nodes_with_copy) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1033 ui.write(_(b"number of unused bytes: %d\n") % unused_bytes) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1034 ui.write( |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1035 _(b"ignore pattern hash: %s\n") % binascii.hexlify(ignore_pattern) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1036 ) |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1037 return |
eaaf4f98c9f1
dirstate-v2: add flag to `debugstate` to print docket information
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48835
diff
changeset
|
1038 |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
1039 nodates = not opts['dates'] |
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
1040 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
|
1041 nodates = True |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
1042 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
|
1043 |
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
1044 if datesort: |
48046
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1045 |
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1046 def keyfunc(entry): |
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1047 filename, _state, _mode, _size, mtime = entry |
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1048 return (mtime, filename) |
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1049 |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
1050 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1051 keyfunc = None # sort by filename |
48045
357307feaf61
debugstate: Always call dirstatemap.debug_iter()
Simon Sapin <simon.sapin@octobus.net>
parents:
47916
diff
changeset
|
1052 entries = list(repo.dirstate._map.debug_iter(all=opts['all'])) |
47357
3b9914b28133
dirstate-v2: Add --dirs to debugdirstate command
Simon Sapin <simon.sapin@octobus.net>
parents:
47309
diff
changeset
|
1053 entries.sort(key=keyfunc) |
48046
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1054 for entry in entries: |
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1055 filename, state, mode, size, mtime = entry |
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1056 if mtime == -1: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1057 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
|
1058 elif nodates: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1059 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
|
1060 else: |
48046
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1061 timestr = time.strftime("%Y-%m-%d %H:%M:%S ", time.localtime(mtime)) |
35214
d4b108fdf423
py3: use encoding.strtolocal() to convert string to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35172
diff
changeset
|
1062 timestr = encoding.strtolocal(timestr) |
48046
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1063 if mode & 0o20000: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1064 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
|
1065 else: |
48046
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1066 mode = b'%3o' % (mode & 0o777 & ~util.umask) |
cedfe2606adf
debugsate: Change debug_iter() to yield tuples instead of DirstateItem
Simon Sapin <simon.sapin@octobus.net>
parents:
48045
diff
changeset
|
1067 ui.write(b"%c %s %10d %s%s\n" % (state, mode, size, timestr, filename)) |
30974
dad968920130
debugcommands: move 'debugstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30973
diff
changeset
|
1068 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
|
1069 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
|
1070 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1071 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1072 @command( |
49215
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1073 b'debugdirstateignorepatternshash', |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1074 [], |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1075 _(b''), |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1076 ) |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1077 def debugdirstateignorepatternshash(ui, repo, **opts): |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1078 """show the hash of ignore patterns stored in dirstate if v2, |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1079 or nothing for dirstate-v2 |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1080 """ |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1081 if repo.dirstate._use_dirstate_v2: |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1082 docket = repo.dirstate._map.docket |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1083 hash_len = 20 # 160 bits for SHA-1 |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1084 hash_bytes = docket.tree_metadata[-hash_len:] |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1085 ui.write(binascii.hexlify(hash_bytes) + b'\n') |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1086 |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1087 |
22279b604a88
fix-ci: backed out changeset 308e45f7b455
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49201
diff
changeset
|
1088 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1089 b'debugdiscovery', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1090 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1091 (b'', b'old', None, _(b'use old-style discovery')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1092 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1093 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1094 b'nonheads', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1095 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1096 _(b'use old-style discovery with non-heads included'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1097 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1098 (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
|
1099 (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
|
1100 ( |
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
|
1101 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
|
1102 b'local-as-revs', |
46783
b6ac612445e0
debugdiscovery: add missing byte string marker to some help text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46782
diff
changeset
|
1103 b"", |
b6ac612445e0
debugdiscovery: add missing byte string marker to some help text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46782
diff
changeset
|
1104 b'treat local has having these revisions only', |
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
|
1105 ), |
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
|
1106 ( |
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
|
1107 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
|
1108 b'remote-as-revs', |
46783
b6ac612445e0
debugdiscovery: add missing byte string marker to some help text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46782
diff
changeset
|
1109 b"", |
49046
db960032d522
debugdiscovery: fix a typo in the help
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49012
diff
changeset
|
1110 b'use local as remote, with only these revisions', |
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
|
1111 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1112 ] |
46781
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1113 + cmdutil.remoteopts |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1114 + cmdutil.formatteropts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1115 _(b'[--rev REV] [OTHER]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1116 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1117 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
|
1118 """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
|
1119 |
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
|
1120 The local peer can be "replaced" by a subset of the local repository by |
49395
f69bffd00abe
debug-discovery: apply spelling fixes from Rapha?l
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49393
diff
changeset
|
1121 using the `--local-as-revs` flag. In the same way, the usual `remote` peer |
f69bffd00abe
debug-discovery: apply spelling fixes from Rapha?l
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49393
diff
changeset
|
1122 can be "replaced" by a subset of the local repository using the |
49388
a3fdc4fcb7d2
debug-discovery: fix a typo in the doc
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49314
diff
changeset
|
1123 `--remote-as-revs` flag. This is useful to efficiently debug pathological |
49395
f69bffd00abe
debug-discovery: apply spelling fixes from Rapha?l
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49393
diff
changeset
|
1124 discovery situations. |
46804
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1125 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1126 The following developer oriented config are relevant for people playing with this command: |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1127 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1128 * devel.discovery.exchange-heads=True |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1129 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1130 If False, the discovery will not start with |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1131 remote head fetching and local head querying. |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1132 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1133 * devel.discovery.grow-sample=True |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1134 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1135 If False, the sample size used in set discovery will not be increased |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1136 through the process |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1137 |
46806
2b1b8f3e6510
setdiscovery: add a discovery.grow-sample.dynamic option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46804
diff
changeset
|
1138 * devel.discovery.grow-sample.dynamic=True |
2b1b8f3e6510
setdiscovery: add a discovery.grow-sample.dynamic option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46804
diff
changeset
|
1139 |
2b1b8f3e6510
setdiscovery: add a discovery.grow-sample.dynamic option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46804
diff
changeset
|
1140 When discovery.grow-sample.dynamic is True, the default, the sample size is |
2b1b8f3e6510
setdiscovery: add a discovery.grow-sample.dynamic option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46804
diff
changeset
|
1141 adapted to the shape of the undecided set (it is set to the max of: |
2b1b8f3e6510
setdiscovery: add a discovery.grow-sample.dynamic option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46804
diff
changeset
|
1142 <target-size>, len(roots(undecided)), len(heads(undecided) |
2b1b8f3e6510
setdiscovery: add a discovery.grow-sample.dynamic option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46804
diff
changeset
|
1143 |
46804
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1144 * devel.discovery.grow-sample.rate=1.05 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1145 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1146 the rate at which the sample grow |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1147 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1148 * devel.discovery.randomize=True |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1149 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1150 If andom sampling during discovery are deterministic. It is meant for |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1151 integration tests. |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1152 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1153 * devel.discovery.sample-size=200 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1154 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1155 Control the initial size of the discovery sample |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1156 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1157 * devel.discovery.sample-size.initial=100 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1158 |
13d973690ecd
debugdiscovery: document relevant config option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46796
diff
changeset
|
1159 Control the initial size of the discovery for initial change |
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
|
1160 """ |
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
|
1161 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
|
1162 |
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
|
1163 # setup potential extra filtering |
50960
8e5083590cfe
debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50959
diff
changeset
|
1164 local_revs = opts["local_as_revs"] |
8e5083590cfe
debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50959
diff
changeset
|
1165 remote_revs = opts["remote_as_revs"] |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1166 |
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1167 # make sure tests are repeatable |
50960
8e5083590cfe
debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50959
diff
changeset
|
1168 random.seed(int(opts['seed'])) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1169 |
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
|
1170 if not remote_revs: |
49838
4303fa8f4232
path: pass `path` to `peer` in `hg debugdiscovery`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49790
diff
changeset
|
1171 path = urlutil.get_unique_pull_path_obj( |
4303fa8f4232
path: pass `path` to `peer` in `hg debugdiscovery`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49790
diff
changeset
|
1172 b'debugdiscovery', ui, remoteurl |
46959
9e021cffb356
debugdiscovery: use `get_unique_pull_path`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46908
diff
changeset
|
1173 ) |
49838
4303fa8f4232
path: pass `path` to `peer` in `hg debugdiscovery`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49790
diff
changeset
|
1174 branches = (path.branch, []) |
50960
8e5083590cfe
debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50959
diff
changeset
|
1175 remote = hg.peer(repo, pycompat.byteskwargs(opts), path) |
49838
4303fa8f4232
path: pass `path` to `peer` in `hg debugdiscovery`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49790
diff
changeset
|
1176 ui.status(_(b'comparing with %s\n') % urlutil.hidepassword(path.loc)) |
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
|
1177 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
|
1178 branches = (None, []) |
48128
5ced12cfa41b
errors: raise InputError on bad revset to revrange() iff provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents:
48113
diff
changeset
|
1179 remote_filtered_revs = logcmdutil.revrange( |
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
|
1180 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
|
1181 ) |
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
|
1182 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
|
1183 |
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
|
1184 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
|
1185 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
|
1186 |
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
|
1187 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
|
1188 |
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
|
1189 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
|
1190 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
|
1191 |
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
|
1192 if local_revs: |
48128
5ced12cfa41b
errors: raise InputError on bad revset to revrange() iff provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents:
48113
diff
changeset
|
1193 local_filtered_revs = logcmdutil.revrange( |
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
|
1194 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
|
1195 ) |
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
|
1196 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
|
1197 |
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
|
1198 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
|
1199 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
|
1200 |
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
|
1201 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
|
1202 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
|
1203 |
46111
d90f439ff19f
debugdiscovery: display the number of roundtrip used
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46080
diff
changeset
|
1204 data = {} |
50960
8e5083590cfe
debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50959
diff
changeset
|
1205 if opts.get('old'): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1206 |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1207 def doit(pushedrevs, remoteheads, remote=remote): |
50951
d718eddf01d9
safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50715
diff
changeset
|
1208 if not hasattr(remote, 'branches'): |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1209 # enable in-client legacy support |
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1210 remote = localrepo.locallegacypeer(remote.local()) |
49389
a1bb21542ab0
debug-discovery: properly apply remote filtering in "old" mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49388
diff
changeset
|
1211 if remote_revs: |
a1bb21542ab0
debug-discovery: properly apply remote filtering in "old" mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49388
diff
changeset
|
1212 r = remote._repo.filtered(b'debug-discovery-remote-filter') |
a1bb21542ab0
debug-discovery: properly apply remote filtering in "old" mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49388
diff
changeset
|
1213 remote._repo = r |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1214 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
|
1215 repo, remote, force=True, audit=data |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1216 ) |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1217 common = set(common) |
50960
8e5083590cfe
debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50959
diff
changeset
|
1218 if not opts.get('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
|
1219 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1220 b"unpruned common: %s\n" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1221 % b" ".join(sorted(short(n) for n in common)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1222 ) |
39196
26f3d075f36e
debugcommands: use a revset instead of dagutil
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39194
diff
changeset
|
1223 |
26f3d075f36e
debugcommands: use a revset instead of dagutil
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39194
diff
changeset
|
1224 clnode = repo.changelog.node |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1225 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
|
1226 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
|
1227 return common, hds |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1228 |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1229 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1230 |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1231 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
|
1232 nodes = None |
f77121b6bf1b
setdiscover: allow to ignore part of the local graph
Boris Feld <boris.feld@octobus.net>
parents:
35214
diff
changeset
|
1233 if pushedrevs: |
48128
5ced12cfa41b
errors: raise InputError on bad revset to revrange() iff provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents:
48113
diff
changeset
|
1234 revs = logcmdutil.revrange(repo, pushedrevs) |
35313
f77121b6bf1b
setdiscover: allow to ignore part of the local graph
Boris Feld <boris.feld@octobus.net>
parents:
35214
diff
changeset
|
1235 nodes = [repo[r].node() for r in revs] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1236 common, any, hds = setdiscovery.findcommonheads( |
49392
ac4fda5d3ccd
debug-discovery: do not abort on unrelated repositories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49391
diff
changeset
|
1237 ui, |
ac4fda5d3ccd
debug-discovery: do not abort on unrelated repositories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49391
diff
changeset
|
1238 repo, |
ac4fda5d3ccd
debug-discovery: do not abort on unrelated repositories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49391
diff
changeset
|
1239 remote, |
ac4fda5d3ccd
debug-discovery: do not abort on unrelated repositories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49391
diff
changeset
|
1240 ancestorsof=nodes, |
ac4fda5d3ccd
debug-discovery: do not abort on unrelated repositories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49391
diff
changeset
|
1241 audit=data, |
ac4fda5d3ccd
debug-discovery: do not abort on unrelated repositories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49391
diff
changeset
|
1242 abortwhenunrelated=False, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1243 ) |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1244 return common, hds |
30526
a3ec6db36315
debugcommands: move 'debugdiscovery' in the module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30525
diff
changeset
|
1245 |
35426
fed2c040764e
debugdiscovery: drop reference to non-existent --remote-head option
Martin von Zweigbergk <martinvonz@google.com>
parents:
35425
diff
changeset
|
1246 remoterevs, _checkout = hg.addbranchrevs(repo, remote, branches, revs=None) |
50960
8e5083590cfe
debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50959
diff
changeset
|
1247 localrevs = opts['rev'] |
8e5083590cfe
debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50959
diff
changeset
|
1248 |
8e5083590cfe
debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50959
diff
changeset
|
1249 fm = ui.formatter(b'debugdiscovery', pycompat.byteskwargs(opts)) |
46782
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1250 if fm.strict_format: |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1251 |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1252 @contextlib.contextmanager |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1253 def may_capture_output(): |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1254 ui.pushbuffer() |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1255 yield |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1256 data[b'output'] = ui.popbuffer() |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1257 |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1258 else: |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1259 may_capture_output = util.nullcontextmanager |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1260 with may_capture_output(): |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1261 with util.timedcm('debug-discovery') as t: |
67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46781
diff
changeset
|
1262 common, hds = doit(localrevs, remoterevs) |
42031
d31d8c5279c6
debugdiscovery: small internal refactoring
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42030
diff
changeset
|
1263 |
42032
63165e4a76da
debugdiscovery: display more statistic about the common set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42031
diff
changeset
|
1264 # compute all statistics |
49393
c6aac50038bb
debug-discovery: deal with case where common is empty
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49392
diff
changeset
|
1265 if len(common) == 1 and repo.nullid in common: |
c6aac50038bb
debug-discovery: deal with case where common is empty
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49392
diff
changeset
|
1266 common = set() |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1267 heads_common = set(common) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1268 heads_remote = set(hds) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1269 heads_local = set(repo.heads()) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1270 # 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
|
1271 # itself a head of common. |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1272 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
|
1273 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
|
1274 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
|
1275 |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1276 all = repo.revs(b'all()') |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1277 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
|
1278 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
|
1279 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
|
1280 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
|
1281 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
|
1282 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
|
1283 |
46080
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1284 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
|
1285 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
|
1286 ) |
0e5065b6baa0
debugdiscovery: display some information about the initial "undecided" set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46079
diff
changeset
|
1287 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
|
1288 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
|
1289 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
|
1290 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
|
1291 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1292 data[b'elapsed'] = t.elapsed |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1293 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
|
1294 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
|
1295 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
|
1296 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
|
1297 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
|
1298 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
|
1299 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
|
1300 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
|
1301 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
|
1302 heads_common_remote |
46064
24751551fe64
debugdiscovery: clarify internal key name in debugobsolete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46034
diff
changeset
|
1303 ) |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1304 data[b'nb-revs'] = len(all) |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1305 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
|
1306 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
|
1307 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
|
1308 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
|
1309 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
|
1310 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
|
1311 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
|
1312 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
|
1313 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
|
1314 |
46781
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1315 fm.startitem() |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1316 fm.data(**pycompat.strkwargs(data)) |
42032
63165e4a76da
debugdiscovery: display more statistic about the common set
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42031
diff
changeset
|
1317 # display discovery summary |
46781
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1318 fm.plain(b"elapsed time: %(elapsed)f seconds\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1319 fm.plain(b"round-trips: %(total-roundtrips)9d\n" % data) |
49391
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1320 if b'total-round-trips-heads' in data: |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1321 fm.plain( |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1322 b" round-trips-heads: %(total-round-trips-heads)9d\n" % data |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1323 ) |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1324 if b'total-round-trips-branches' in data: |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1325 fm.plain( |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1326 b" round-trips-branches: %(total-round-trips-branches)9d\n" |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1327 % data |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1328 ) |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1329 if b'total-round-trips-between' in data: |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1330 fm.plain( |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1331 b" round-trips-between: %(total-round-trips-between)9d\n" % data |
236702592ff0
debug-discovery: gather the right number of roundtrips for tree discovery
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49390
diff
changeset
|
1332 ) |
49082
f054a557aab8
discovery: also audit the number of queries done
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49046
diff
changeset
|
1333 fm.plain(b"queries: %(total-queries)9d\n" % data) |
49390
362c0026a977
debug-discovery: also gather details on tree-discovery queries type
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49389
diff
changeset
|
1334 if b'total-queries-branches' in data: |
362c0026a977
debug-discovery: also gather details on tree-discovery queries type
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49389
diff
changeset
|
1335 fm.plain(b" queries-branches: %(total-queries-branches)9d\n" % data) |
362c0026a977
debug-discovery: also gather details on tree-discovery queries type
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49389
diff
changeset
|
1336 if b'total-queries-between' in data: |
362c0026a977
debug-discovery: also gather details on tree-discovery queries type
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49389
diff
changeset
|
1337 fm.plain(b" queries-between: %(total-queries-between)9d\n" % data) |
46781
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1338 fm.plain(b"heads summary:\n") |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1339 fm.plain(b" total common heads: %(nb-common-heads)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1340 fm.plain(b" also local heads: %(nb-common-heads-local)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1341 fm.plain(b" also remote heads: %(nb-common-heads-remote)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1342 fm.plain(b" both: %(nb-common-heads-both)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1343 fm.plain(b" local heads: %(nb-head-local)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1344 fm.plain(b" common: %(nb-common-heads-local)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1345 fm.plain(b" missing: %(nb-head-local-missing)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1346 fm.plain(b" remote heads: %(nb-head-remote)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1347 fm.plain(b" common: %(nb-common-heads-remote)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1348 fm.plain(b" unknown: %(nb-head-remote-unknown)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1349 fm.plain(b"local changesets: %(nb-revs)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1350 fm.plain(b" common: %(nb-revs-common)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1351 fm.plain(b" heads: %(nb-common-heads)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1352 fm.plain(b" roots: %(nb-common-roots)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1353 fm.plain(b" missing: %(nb-revs-missing)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1354 fm.plain(b" heads: %(nb-missing-heads)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1355 fm.plain(b" roots: %(nb-missing-roots)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1356 fm.plain(b" first undecided set: %(nb-ini_und)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1357 fm.plain(b" heads: %(nb-ini_und-heads)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1358 fm.plain(b" roots: %(nb-ini_und-roots)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1359 fm.plain(b" common: %(nb-ini_und-common)9d\n" % data) |
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1360 fm.plain(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
|
1361 |
42034
fd8d13ea1bcc
debugdiscovery: only list common heads on verbose
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42033
diff
changeset
|
1362 if ui.verbose: |
46781
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1363 fm.plain( |
46065
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1364 b"common heads: %s\n" |
44a52048c6d6
debugdiscovery: move various computation earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46064
diff
changeset
|
1365 % 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
|
1366 ) |
46781
3a8cf5b9c820
debugdiscovery: add support for Json output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46724
diff
changeset
|
1367 fm.end() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1368 |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1369 |
35562
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1370 _chunksize = 4 << 10 |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1371 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1372 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1373 @command( |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1374 b'debugdownload', |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1375 [ |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1376 (b'o', b'output', b'', _(b'path')), |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1377 ], |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1378 optionalrepo=True, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1379 ) |
35730
05d415790761
debugdownload: read repository hgrc if there is one
Boris Feld <boris.feld@octobus.net>
parents:
35728
diff
changeset
|
1380 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
|
1381 """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
|
1382 fh = urlmod.open(ui, url, output) |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1383 |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1384 dest = ui |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1385 if output: |
52400
9746e618c151
debugcommands: stop using the `pycompat.open()` shim
Matt Harbison <matt_harbison@yahoo.com>
parents:
52105
diff
changeset
|
1386 dest = open(output, "wb", _chunksize) |
35562
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1387 try: |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1388 data = fh.read(_chunksize) |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1389 while data: |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1390 dest.write(data) |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1391 data = fh.read(_chunksize) |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1392 finally: |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1393 if output: |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1394 dest.close() |
6580cf751418
debug: add a 'debugdownload' command
Boris Feld <boris.feld@octobus.net>
parents:
35518
diff
changeset
|
1395 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1396 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1397 @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
|
1398 def debugextensions(ui, repo, **opts): |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1399 '''show information about active extensions''' |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1400 exts = extensions.extensions(ui) |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1401 hgver = util.version() |
50961
5dc20e1f0518
debugextensions: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50960
diff
changeset
|
1402 fm = ui.formatter(b'debugextensions', pycompat.byteskwargs(opts)) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1403 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
|
1404 isinternal = extensions.ismoduleinternal(extmod) |
43727
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1405 extsource = None |
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1406 |
50951
d718eddf01d9
safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50715
diff
changeset
|
1407 if hasattr(extmod, '__file__'): |
43727
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1408 extsource = pycompat.fsencode(extmod.__file__) |
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1409 elif getattr(sys, 'oxidized', False): |
f1dabf99db17
debugextensions: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43726
diff
changeset
|
1410 extsource = pycompat.sysexecutable |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1411 if isinternal: |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1412 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
|
1413 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1414 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
|
1415 extbuglink = getattr(extmod, 'buglink', None) |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1416 |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1417 fm.startitem() |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1418 |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1419 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
|
1420 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
|
1421 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1422 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
|
1423 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
|
1424 fm.plain(b'\n') |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1425 elif not exttestedwith: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1426 fm.plain(_(b' (untested!)\n')) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1427 else: |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1428 lasttestedversion = exttestedwith[-1] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1429 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
|
1430 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1431 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1432 ui.verbose and extsource, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1433 b'source', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1434 _(b' location: %s\n'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1435 extsource or b"", |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1436 ) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1437 |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1438 if ui.verbose: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1439 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
|
1440 fm.data(bundled=isinternal) |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1441 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1442 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1443 ui.verbose and exttestedwith, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1444 b'testedwith', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1445 _(b' tested with: %s\n'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1446 fm.formatlist(exttestedwith, name=b'ver'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1447 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1448 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1449 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1450 ui.verbose and extbuglink, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1451 b'buglink', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1452 _(b' bug reporting: %s\n'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1453 extbuglink or b"", |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1454 ) |
30527
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1455 |
a8b17859684a
debugcommands: move 'debugextensions' to the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30526
diff
changeset
|
1456 fm.end() |
30533
1ee358c3ed26
debugcommands: move 'debugfileset' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30528
diff
changeset
|
1457 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1458 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1459 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1460 b'debugfileset', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1461 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1462 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1463 b'r', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1464 b'rev', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1465 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1466 _(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
|
1467 _(b'REV'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1468 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1469 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1470 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1471 b'all-files', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1472 False, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1473 _(b'test files from all revisions and working directory'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1474 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1475 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1476 b's', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1477 b'show-matcher', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1478 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1479 _(b'print internal representation of matcher'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1480 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1481 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1482 b'p', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1483 b'show-stage', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1484 [], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1485 _(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
|
1486 _(b'NAME'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1487 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1488 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1489 _(b'[-r REV] [--all-files] [OPTION]... FILESPEC'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1490 ) |
30533
1ee358c3ed26
debugcommands: move 'debugfileset' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30528
diff
changeset
|
1491 def debugfileset(ui, repo, expr, **opts): |
1ee358c3ed26
debugcommands: move 'debugfileset' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30528
diff
changeset
|
1492 '''parse and apply a fileset specification''' |
39010
4d992e3f10ba
debugcommands: force import of fileset in debugfileset
Augie Fackler <augie@google.com>
parents:
38869
diff
changeset
|
1493 from . import fileset |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1494 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1495 fileset.symbols # force import of fileset so we have predicates to optimize |
50962
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1496 |
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1497 ctx = logcmdutil.revsingle(repo, opts.get('rev'), None) |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1498 |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1499 stages = [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1500 (b'parsed', pycompat.identity), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1501 (b'analyzed', filesetlang.analyze), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1502 (b'optimized', filesetlang.optimize), |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1503 ] |
44470
9d2b2df2c2ba
cleanup: run pyupgrade on our source tree to clean up varying things
Augie Fackler <augie@google.com>
parents:
44453
diff
changeset
|
1504 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
|
1505 |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1506 showalways = set() |
50962
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1507 if ui.verbose and not opts['show_stage']: |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1508 # 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
|
1509 showalways.add(b'parsed') |
50962
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1510 if opts['show_stage'] == [b'all']: |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1511 showalways.update(stagenames) |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1512 else: |
50962
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1513 for n in opts['show_stage']: |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1514 if n not in stagenames: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1515 raise error.Abort(_(b'invalid stage name: %s') % n) |
50962
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1516 showalways.update(opts['show_stage']) |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1517 |
38845
b9162ea1b815
fileset: extract language processing part to new module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
38842
diff
changeset
|
1518 tree = filesetlang.parse(expr) |
38841
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1519 for n, f in stages: |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1520 tree = f(tree) |
1d1c1645d7b9
debugfileset: backport --show-stage option from debugrevspec
Yuya Nishihara <yuya@tcha.org>
parents:
38823
diff
changeset
|
1521 if n in showalways: |
50962
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1522 if opts['show_stage'] or n != b'parsed': |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1523 ui.write(b"* %s:\n" % n) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1524 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
|
1525 |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1526 files = set() |
50962
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1527 if opts['all_files']: |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1528 for r in repo: |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1529 c = repo[r] |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1530 files.update(c.files()) |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1531 files.update(c.substate) |
50962
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1532 if opts['all_files'] or ctx.rev() is None: |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1533 wctx = repo[None] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1534 files.update( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1535 repo.dirstate.walk( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1536 scmutil.matchall(repo), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1537 subrepos=list(wctx.substate), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1538 unknown=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1539 ignored=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1540 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1541 ) |
38611
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1542 files.update(wctx.substate) |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1543 else: |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1544 files.update(ctx.files()) |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1545 files.update(ctx.substate) |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1546 |
44012
e685fac56693
match: resolve filesets against the passed `cwd`, not the current one
Matt Harbison <matt_harbison@yahoo.com>
parents:
43977
diff
changeset
|
1547 m = ctx.matchfileset(repo.getcwd(), expr) |
50962
44c29568898f
debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50961
diff
changeset
|
1548 if opts['show_matcher'] or (opts['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
|
1549 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
|
1550 for f in sorted(files): |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1551 if not m(f): |
3d8ef60569d8
fileset: make debugfileset filter repository files
Yuya Nishihara <yuya@tcha.org>
parents:
38600
diff
changeset
|
1552 continue |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1553 ui.write(b"%s\n" % f) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1554 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1555 |
47810
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1556 @command( |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1557 b"debug-repair-issue6528", |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1558 [ |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1559 ( |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1560 b'', |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1561 b'to-report', |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1562 b'', |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1563 _(b'build a report of affected revisions to this file'), |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1564 _(b'FILE'), |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1565 ), |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1566 ( |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1567 b'', |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1568 b'from-report', |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1569 b'', |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1570 _(b'repair revisions listed in this report file'), |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1571 _(b'FILE'), |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1572 ), |
47812
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1573 ( |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1574 b'', |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1575 b'paranoid', |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1576 False, |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1577 _(b'check that both detection methods do the same thing'), |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1578 ), |
47810
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1579 ] |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1580 + cmdutil.dryrunopts, |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1581 ) |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1582 def debug_repair_issue6528(ui, repo, **opts): |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1583 """find affected revisions and repair them. See issue6528 for more details. |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1584 |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1585 The `--to-report` and `--from-report` flags allow you to cache and reuse the |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1586 computation of affected revisions for a given repository across clones. |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1587 The report format is line-based (with empty lines ignored): |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1588 |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1589 ``` |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1590 <ascii-hex of the affected revision>,... <unencoded filelog index filename> |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1591 ``` |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1592 |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1593 There can be multiple broken revisions per filelog, they are separated by |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1594 a comma with no spaces. The only space is between the revision(s) and the |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1595 filename. |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1596 |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1597 Note that this does *not* mean that this repairs future affected revisions, |
48199
b669e40fbbd6
help: update help text for debug-repair-issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48130
diff
changeset
|
1598 that needs a separate fix at the exchange level that was introduced in |
b669e40fbbd6
help: update help text for debug-repair-issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
48130
diff
changeset
|
1599 Mercurial 5.9.1. |
47812
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1600 |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1601 There is a `--paranoid` flag to test that the fast implementation is correct |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1602 by checking it against the slow implementation. Since this matter is quite |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1603 urgent and testing every edge-case is probably quite costly, we use this |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1604 method to test on large repositories as a fuzzing method of sorts. |
47810
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1605 """ |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1606 cmdutil.check_incompatible_arguments( |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1607 opts, 'to_report', ['from_report', 'dry_run'] |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1608 ) |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1609 dry_run = opts.get('dry_run') |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1610 to_report = opts.get('to_report') |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1611 from_report = opts.get('from_report') |
47812
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1612 paranoid = opts.get('paranoid') |
47810
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1613 # TODO maybe add filelog pattern and revision pattern parameters to help |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1614 # narrow down the search for users that know what they're looking for? |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1615 |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1616 if requirements.REVLOGV1_REQUIREMENT not in repo.requirements: |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1617 msg = b"can only repair revlogv1 repositories, v2 is not affected" |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1618 raise error.Abort(_(msg)) |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1619 |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1620 rewrite.repair_issue6528( |
47812
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1621 ui, |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1622 repo, |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1623 dry_run=dry_run, |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1624 to_report=to_report, |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1625 from_report=from_report, |
855463b5fe49
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47810
diff
changeset
|
1626 paranoid=paranoid, |
47810
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1627 ) |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1628 |
b30a53ffbf9b
debugcommands: introduce a debug command to repair repos affected by issue6528
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47683
diff
changeset
|
1629 |
52486
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1630 @command( |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1631 b'debugformat', |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1632 [] + cmdutil.formatteropts, |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1633 b'[PATTERN] ... [PATTERN]', |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1634 ) |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1635 def debugformat(ui, repo, *patterns, **opts): |
35346
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1636 """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
|
1637 |
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1638 Use --verbose to get extra information about current config value and |
52486
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1639 Mercurial default. |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1640 |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1641 If patterns are specified, only format matching at least one of these |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1642 pattern will be displayed. |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1643 """ |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1644 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
|
1645 maxvariantlength = max(len(b'format-variant'), maxvariantlength) |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1646 |
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1647 def makeformatname(name): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1648 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
|
1649 |
50963
45381a1dd367
debugformat: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50962
diff
changeset
|
1650 fm = ui.formatter(b'debugformat', pycompat.byteskwargs(opts)) |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1651 if fm.isplain(): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1652 |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1653 def formatvalue(value): |
50951
d718eddf01d9
safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50715
diff
changeset
|
1654 if hasattr(value, 'startswith'): |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1655 return value |
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1656 if value: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1657 return b'yes' |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1658 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1659 return b'no' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1660 |
35387
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1661 else: |
9144e898cad5
debugformat: embed raw values in JSON and template output
Yuya Nishihara <yuya@tcha.org>
parents:
35386
diff
changeset
|
1662 formatvalue = pycompat.identity |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1663 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1664 fm.plain(b'format-variant') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1665 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
|
1666 fm.plain(b' repo') |
35346
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1667 if ui.verbose: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1668 fm.plain(b' config default') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1669 fm.plain(b'\n') |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1670 for fv in upgrade.allformatvariant: |
52486
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1671 if patterns: |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1672 for p in patterns: |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1673 # XXX support "re:" at some point |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1674 if p in fv.name: |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1675 break |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1676 else: |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1677 # no pattern matches, continue |
8dede0df9de9
format: add pattern filtering to debugformat
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52400
diff
changeset
|
1678 continue |
35386
c0b6fa74e007
debugformat: flush formatter output per item
Yuya Nishihara <yuya@tcha.org>
parents:
35348
diff
changeset
|
1679 fm.startitem() |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1680 repovalue = fv.fromrepo(repo) |
35346
cfb403b92f43
debugformat: add data about the config when verbose
Boris Feld <boris.feld@octobus.net>
parents:
35345
diff
changeset
|
1681 configvalue = fv.fromconfig(repo) |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1682 |
35347
bd326f3e0e14
debugformat: update label depending on value difference
Boris Feld <boris.feld@octobus.net>
parents:
35346
diff
changeset
|
1683 if repovalue != configvalue: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1684 namelabel = b'formatvariant.name.mismatchconfig' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1685 repolabel = b'formatvariant.repo.mismatchconfig' |
35347
bd326f3e0e14
debugformat: update label depending on value difference
Boris Feld <boris.feld@octobus.net>
parents:
35346
diff
changeset
|
1686 elif repovalue != fv.default: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1687 namelabel = b'formatvariant.name.mismatchdefault' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1688 repolabel = b'formatvariant.repo.mismatchdefault' |
35347
bd326f3e0e14
debugformat: update label depending on value difference
Boris Feld <boris.feld@octobus.net>
parents:
35346
diff
changeset
|
1689 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1690 namelabel = b'formatvariant.name.uptodate' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1691 repolabel = b'formatvariant.repo.uptodate' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1692 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1693 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
|
1694 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
|
1695 if fv.default != configvalue: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1696 configlabel = b'formatvariant.config.special' |
35347
bd326f3e0e14
debugformat: update label depending on value difference
Boris Feld <boris.feld@octobus.net>
parents:
35346
diff
changeset
|
1697 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1698 configlabel = b'formatvariant.config.default' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1699 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1700 ui.verbose, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1701 b'config', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1702 b' %6s', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1703 formatvalue(configvalue), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1704 label=configlabel, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1705 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1706 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1707 ui.verbose, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1708 b'default', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1709 b' %7s', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1710 formatvalue(fv.default), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1711 label=b'formatvariant.default', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1712 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1713 fm.plain(b'\n') |
35386
c0b6fa74e007
debugformat: flush formatter output per item
Yuya Nishihara <yuya@tcha.org>
parents:
35348
diff
changeset
|
1714 fm.end() |
35345
c3e4f196b6e0
debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net>
parents:
35313
diff
changeset
|
1715 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1716 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1717 @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
|
1718 def debugfsinfo(ui, path=b"."): |
30534
86ebd2f61c31
debugcommands: move 'debugfsinfo' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30533
diff
changeset
|
1719 """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
|
1720 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
|
1721 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1722 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
|
1723 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1724 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
|
1725 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
|
1726 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1727 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
|
1728 ) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1729 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
1730 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
|
1731 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1732 casesensitive = b'(unknown)' |
31639
35738db2037a
debugfsinfo: improve case-sensitive testing
Jun Wu <quark@fb.com>
parents:
31638
diff
changeset
|
1733 try: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1734 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
|
1735 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
|
1736 except OSError: |
35738db2037a
debugfsinfo: improve case-sensitive testing
Jun Wu <quark@fb.com>
parents:
31638
diff
changeset
|
1737 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
|
1738 ui.writenoi18n(b'case-sensitive: %s\n' % casesensitive) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1739 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1740 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1741 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1742 b'debuggetbundle', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1743 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1744 (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
|
1745 (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
|
1746 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1747 b't', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1748 b'type', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1749 b'bzip2', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1750 _(b'bundle compression type to use'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1751 _(b'TYPE'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1752 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1753 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1754 _(b'REPO FILE [-H|-C ID]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1755 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1756 ) |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1757 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
|
1758 """retrieves a bundle from a repo |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1759 |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1760 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
|
1761 given file. |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1762 """ |
50964
7825175d5ad5
debuggetbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50963
diff
changeset
|
1763 repo = hg.peer(ui, pycompat.byteskwargs(opts), repopath) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1764 if not repo.capable(b'getbundle'): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1765 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
|
1766 args = {} |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1767 if common: |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
1768 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
|
1769 if head: |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
1770 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
|
1771 # 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
|
1772 args['bundlecaps'] = None |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1773 bundle = repo.getbundle(b'debug', **args) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1774 |
50964
7825175d5ad5
debuggetbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50963
diff
changeset
|
1775 bundletype = opts.get('type', b'bzip2').lower() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1776 btypes = { |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1777 b'none': b'HG10UN', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1778 b'bzip2': b'HG10BZ', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1779 b'gzip': b'HG10GZ', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1780 b'bundle2': b'HG20', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1781 } |
30535
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1782 bundletype = btypes.get(bundletype) |
9c10905f4b48
debugcommands: move 'debuggetbundle' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30534
diff
changeset
|
1783 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
|
1784 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
|
1785 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
|
1786 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1787 |
50579
720a23405fe9
debug: update usage strings of debugignore and debugnodemap
Anton Shestakov <av6@dwimlabs.net>
parents:
50578
diff
changeset
|
1788 @command(b'debugignore', [], b'[FILE]...') |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1789 def debugignore(ui, repo, *files, **opts): |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1790 """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
|
1791 |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1792 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
|
1793 |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1794 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
|
1795 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
|
1796 """ |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1797 ignore = repo.dirstate._ignore |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1798 if not files: |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1799 # Show all the patterns |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1800 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
|
1801 else: |
33507
e9672de52a23
debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents:
33493
diff
changeset
|
1802 m = scmutil.match(repo[None], pats=files) |
41647
be8741d42836
debugignore: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com>
parents:
41529
diff
changeset
|
1803 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
|
1804 for f in m.files(): |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1805 nf = util.normpath(f) |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1806 ignored = None |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1807 ignoredata = None |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1808 if nf != b'.': |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1809 if ignore(nf): |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1810 ignored = nf |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1811 ignoredata = repo.dirstate._ignorefileandline(nf) |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1812 else: |
43677
0b7733719d21
utils: move finddirs() to pathutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
43554
diff
changeset
|
1813 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
|
1814 if ignore(p): |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1815 ignored = p |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1816 ignoredata = repo.dirstate._ignorefileandline(p) |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1817 break |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1818 if ignored: |
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1819 if ignored == nf: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1820 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
|
1821 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1822 ui.write( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1823 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1824 b"%s is ignored because of " |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1825 b"containing directory %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1826 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1827 % (uipathfn(f), ignored) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1828 ) |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1829 ignorefile, lineno, line = ignoredata |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1830 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1831 _(b"(ignore rule in %s, line %d: '%s')\n") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1832 % (ignorefile, lineno, line) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1833 ) |
30536
243ecbd4f5c9
debugcommands: move 'debugignore' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30535
diff
changeset
|
1834 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1835 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
|
1836 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1837 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1838 @command( |
49264
db19f6be0442
debugindex: rename to debugindex debug-revlog-index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49263
diff
changeset
|
1839 b'debug-revlog-index|debugindex', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1840 cmdutil.debugrevlogopts + cmdutil.formatteropts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1841 _(b'-c|-m|FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1842 ) |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1843 def debugindex(ui, repo, file_=None, **opts): |
49264
db19f6be0442
debugindex: rename to debugindex debug-revlog-index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49263
diff
changeset
|
1844 """dump index data for a revlog""" |
33112
05906b8e1d23
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33074
diff
changeset
|
1845 opts = pycompat.byteskwargs(opts) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1846 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
|
1847 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1848 fm = ui.formatter(b'debugindex', opts) |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49264
diff
changeset
|
1849 |
50648
88362b8bc476
safehasattr: pass attribute name as string instead of bytes
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50595
diff
changeset
|
1850 revlog = getattr(store, '_revlog', store) |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49265
diff
changeset
|
1851 |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49264
diff
changeset
|
1852 return revlog_debug.debug_index( |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49264
diff
changeset
|
1853 ui, |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49264
diff
changeset
|
1854 repo, |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49264
diff
changeset
|
1855 formatter=fm, |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49265
diff
changeset
|
1856 revlog=revlog, |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49264
diff
changeset
|
1857 full_node=ui.debugflag, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1858 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
1859 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1860 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1861 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1862 b'debugindexdot', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1863 cmdutil.debugrevlogopts, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1864 _(b'-c|-m|FILE'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1865 optionalrepo=True, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1866 ) |
30537
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1867 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
|
1868 """dump an index DAG as a graphviz dot file""" |
50965
1cfc49e342c3
debugindexdot: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50964
diff
changeset
|
1869 r = cmdutil.openstorage( |
1cfc49e342c3
debugindexdot: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50964
diff
changeset
|
1870 repo, b'debugindexdot', file_, pycompat.byteskwargs(opts) |
1cfc49e342c3
debugindexdot: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50964
diff
changeset
|
1871 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
1872 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
|
1873 for i in r: |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1874 node = r.node(i) |
22683f2f8100
debugcommands: move 'debugindex' and 'debugindexdot' in the new module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30536
diff
changeset
|
1875 pp = r.parents(node) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1876 ui.write(b"\t%d -> %d\n" % (r.rev(pp[0]), i)) |
47055
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46961
diff
changeset
|
1877 if pp[1] != repo.nullid: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1878 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
|
1879 ui.write(b"}\n") |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1880 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1881 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1882 @command(b'debugindexstats', []) |
39981
d71e0ba34d9b
debugcommands: add a debugindexstats command
Martin von Zweigbergk <martinvonz@google.com>
parents:
39957
diff
changeset
|
1883 def debugindexstats(ui, repo): |
d71e0ba34d9b
debugcommands: add a debugindexstats command
Martin von Zweigbergk <martinvonz@google.com>
parents:
39957
diff
changeset
|
1884 """show stats related to the changelog index""" |
47055
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46961
diff
changeset
|
1885 repo.changelog.shortest(repo.nullid, 1) |
40365
4f37af86d5d5
debugcommands: avoid stack trace from debugindexstats in pure mode
Martin von Zweigbergk <martinvonz@google.com>
parents:
40174
diff
changeset
|
1886 index = repo.changelog.index |
50951
d718eddf01d9
safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50715
diff
changeset
|
1887 if not hasattr(index, 'stats'): |
51253
3551f2a1c963
debugindexstats: handle the lack of Rust support better
Rapha?l Gom?s <rgomes@octobus.net>
parents:
51081
diff
changeset
|
1888 raise error.Abort(_(b'debugindexstats only works with native C code')) |
40365
4f37af86d5d5
debugcommands: avoid stack trace from debugindexstats in pure mode
Martin von Zweigbergk <martinvonz@google.com>
parents:
40174
diff
changeset
|
1889 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
|
1890 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
|
1891 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1892 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1893 @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
|
1894 def debuginstall(ui, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1895 """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
|
1896 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1897 Returns 0 on success. |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
1898 """ |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1899 problems = 0 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1900 |
50966
45a53fc82ab2
debuginstall: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50965
diff
changeset
|
1901 fm = ui.formatter(b'debuginstall', 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
|
1902 fm.startitem() |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1903 |
45100
d50d922ca02b
debuginstall: don't translate encoding messages
Yuya Nishihara <yuya@tcha.org>
parents:
44929
diff
changeset
|
1904 # 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
|
1905 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
|
1906 err = None |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1907 try: |
34144
902219a99901
debuginstall: use codecs.lookup() to detect invalid encoding
Yuya Nishihara <yuya@tcha.org>
parents:
34135
diff
changeset
|
1908 codecs.lookup(pycompat.sysstr(encoding.encoding)) |
902219a99901
debuginstall: use codecs.lookup() to detect invalid encoding
Yuya Nishihara <yuya@tcha.org>
parents:
34135
diff
changeset
|
1909 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
|
1910 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
|
1911 problems += 1 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1912 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1913 err, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1914 b'encodingerror', |
45100
d50d922ca02b
debuginstall: don't translate encoding messages
Yuya Nishihara <yuya@tcha.org>
parents:
44929
diff
changeset
|
1915 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
|
1916 err, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1917 ) |
30938
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 # Python |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1920 pythonlib = None |
50951
d718eddf01d9
safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50715
diff
changeset
|
1921 if hasattr(os, '__file__'): |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1922 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
|
1923 elif getattr(sys, 'oxidized', False): |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1924 pythonlib = pycompat.sysexecutable |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1925 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1926 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1927 b'pythonexe', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1928 _(b"checking Python executable (%s)\n"), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1929 pycompat.sysexecutable or _(b"unknown"), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1930 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1931 fm.write( |
44230
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1932 b'pythonimplementation', |
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1933 _(b"checking Python implementation (%s)\n"), |
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1934 pycompat.sysbytes(platform.python_implementation()), |
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1935 ) |
0b475b0b0344
debugcommands: add Python implementation to debuginstall
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44123
diff
changeset
|
1936 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1937 b'pythonver', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1938 _(b"checking Python version (%s)\n"), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1939 (b"%d.%d.%d" % sys.version_info[:3]), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1940 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1941 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1942 b'pythonlib', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1943 _(b"checking Python lib (%s)...\n"), |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
1944 pythonlib or _(b"unknown"), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1945 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1946 |
44481
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1947 try: |
46413
521ac0d7047f
typing: disable import error warnings that are already handled
Matt Harbison <matt_harbison@yahoo.com>
parents:
46396
diff
changeset
|
1948 from . import rustext # pytype: disable=import-error |
44481
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1949 |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1950 rustext.__doc__ # trigger lazy import |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1951 except ImportError: |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1952 rustext = None |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1953 |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1954 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
|
1955 if sslutil.hassni: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1956 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
|
1957 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1958 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1959 b'pythonsecurity', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1960 _(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
|
1961 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
|
1962 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1963 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1964 # 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
|
1965 # may change in the future. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1966 if b'tls1.2' not in security: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1967 fm.plain( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1968 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1969 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
|
1970 b'network connections lack modern security\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1971 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1972 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1973 if b'sni' not in security: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1974 fm.plain( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1975 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1976 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
|
1977 b'connectivity issues with some servers\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1978 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1979 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1980 |
44481
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1981 fm.plain( |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1982 _( |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1983 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
|
1984 % (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
|
1985 ), |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1986 ) |
295417387769
debuginstall: print if Rust extensions are installed
Rapha?l Gom?s <rgomes@octobus.net>
parents:
44470
diff
changeset
|
1987 |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1988 # 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
|
1989 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1990 # hg version |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
1991 hgver = util.version() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1992 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1993 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
|
1994 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1995 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1996 b'hgverextra', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
1997 _(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
|
1998 b'+'.join(hgver.split(b'+')[1:]), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
1999 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2000 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2001 # compiled modules |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
2002 hgmodules = None |
50951
d718eddf01d9
safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50715
diff
changeset
|
2003 if hasattr(sys.modules[__name__], '__file__'): |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
2004 hgmodules = os.path.dirname(pycompat.fsencode(__file__)) |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
2005 elif getattr(sys, 'oxidized', False): |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
2006 hgmodules = pycompat.sysexecutable |
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
2007 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2008 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2009 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
|
2010 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2011 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2012 b'hgmodules', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2013 _(b"checking installed modules (%s)...\n"), |
43726
1fb19665c166
debuginstall: gracefully handle missing __file__ attributes
Matt Harbison <matt_harbison@yahoo.com>
parents:
43679
diff
changeset
|
2014 hgmodules or _(b"unknown"), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2015 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2016 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2017 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
|
2018 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
|
2019 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
|
2020 nopure = cext or rustext |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2021 if nopure: |
32249
85dc5a25f1fc
debuginstall: check C extensions only if they are loadable per policy
Yuya Nishihara <yuya@tcha.org>
parents:
31864
diff
changeset
|
2022 err = None |
85dc5a25f1fc
debuginstall: check C extensions only if they are loadable per policy
Yuya Nishihara <yuya@tcha.org>
parents:
31864
diff
changeset
|
2023 try: |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2024 if cext: |
43743
a9b14ef701d1
debugcommands: suppress import errors for pytype
Augie Fackler <augie@google.com>
parents:
43727
diff
changeset
|
2025 from .cext import ( # pytype: disable=import-error |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2026 base85, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2027 bdiff, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2028 mpatch, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2029 osutil, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2030 ) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2031 |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2032 # quiet pyflakes |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2033 dir(bdiff), dir(mpatch), dir(base85), dir(osutil) |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2034 if rustext: |
43743
a9b14ef701d1
debugcommands: suppress import errors for pytype
Augie Fackler <augie@google.com>
parents:
43727
diff
changeset
|
2035 from .rustext import ( # pytype: disable=import-error |
42467
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2036 ancestor, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2037 dirstate, |
810f66b468cd
rust: module policy with importrust
Georges Racinet <georges.racinet@octobus.net>
parents:
42148
diff
changeset
|
2038 ) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2039 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2040 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
|
2041 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
|
2042 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
|
2043 problems += 1 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2044 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
|
2045 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2046 compengines = util.compengines._engines.values() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2047 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2048 b'compengines', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2049 _(b'checking registered compression engines (%s)\n'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2050 fm.formatlist( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2051 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
|
2052 name=b'compengine', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2053 fmt=b'%s', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2054 sep=b', ', |
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 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2057 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2058 b'compenginesavail', |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
2059 _(b'checking available compression engines (%s)\n'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2060 fm.formatlist( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2061 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
|
2062 name=b'compengine', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2063 fmt=b'%s', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2064 sep=b', ', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2065 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2066 ) |
42041
3e47d1ec9da5
util: extract compression code in `mercurial.utils.compression`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42035
diff
changeset
|
2067 wirecompengines = compression.compengines.supportedwireengines( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2068 compression.SERVERROLE |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2069 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2070 fm.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2071 b'compenginesserver', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2072 _( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2073 b'checking available compression engines ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2074 b'for wire protocol (%s)\n' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2075 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2076 fm.formatlist( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2077 [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
|
2078 name=b'compengine', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2079 fmt=b'%s', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2080 sep=b', ', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2081 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2082 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2083 re2 = b'missing' |
50398
a45460e235a2
re2: fix reporting of availability in `hg debuginstall`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50317
diff
changeset
|
2084 if util.has_re2(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2085 re2 = b'available' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2086 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
|
2087 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
|
2088 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2089 # templates |
45235
91aa9bba3dc9
templater: make templatepaths() return a single path, or None
Martin von Zweigbergk <martinvonz@google.com>
parents:
45149
diff
changeset
|
2090 p = templater.templatedir() |
45247
d5ccc059fbcd
templater: handle None returned from templatedir()
Martin von Zweigbergk <martinvonz@google.com>
parents:
45235
diff
changeset
|
2091 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
|
2092 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
|
2093 if p: |
45341
4aa484efc926
templater: add exception-raising version of open_template()
Martin von Zweigbergk <martinvonz@google.com>
parents:
45330
diff
changeset
|
2094 (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
|
2095 if m: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2096 # 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
|
2097 err = None |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2098 try: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2099 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
|
2100 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
|
2101 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
|
2102 p = None |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2103 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
|
2104 else: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2105 p = None |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2106 fm.condwrite( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2107 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
|
2108 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2109 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2110 not m, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2111 b'defaulttemplatenotfound', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2112 _(b" template '%s' not found\n"), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2113 b"default", |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2114 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2115 if not p: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2116 problems += 1 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2117 fm.condwrite( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2118 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
|
2119 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2120 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2121 # editor |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2122 editor = ui.geteditor() |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2123 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
|
2124 editorbin = procutil.shellsplit(editor)[0] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2125 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
|
2126 cmdpath = procutil.findexe(editorbin) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2127 fm.condwrite( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2128 not cmdpath and editor == b'vi', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2129 b'vinotfound', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2130 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2131 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
|
2132 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
|
2133 b" file)\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2134 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2135 not cmdpath and editor == b'vi' and editorbin, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2136 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2137 fm.condwrite( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2138 not cmdpath and editor != b'vi', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2139 b'editornotfound', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2140 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2141 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
|
2142 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
|
2143 b" file)\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2144 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2145 not cmdpath and editorbin, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2146 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2147 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
|
2148 problems += 1 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2149 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2150 # check username |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2151 username = None |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2152 err = None |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2153 try: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2154 username = ui.username() |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2155 except error.Abort as e: |
45682
d2e1dcd4490d
errors: name arguments to Abort constructor
Martin von Zweigbergk <martinvonz@google.com>
parents:
45665
diff
changeset
|
2156 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
|
2157 problems += 1 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2158 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2159 fm.condwrite( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2160 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
|
2161 ) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2162 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2163 err, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2164 b'usernameerror', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2165 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2166 b"checking username...\n %s\n" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2167 b" (specify a username in your configuration file)\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2168 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2169 err, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2170 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2171 |
42683
7f1df7019497
debugcommands: add support for extensions adding their own debug info
Augie Fackler <augie@google.com>
parents:
42580
diff
changeset
|
2172 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
|
2173 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
|
2174 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
|
2175 problems += handler(ui, fm) |
7f1df7019497
debugcommands: add support for extensions adding their own debug info
Augie Fackler <augie@google.com>
parents:
42580
diff
changeset
|
2176 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2177 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
|
2178 if not problems: |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2179 fm.data(problems=problems) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2180 fm.condwrite( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2181 problems, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2182 b'problems', |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
2183 _(b"%d problems detected, please check your install!\n"), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2184 problems, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2185 ) |
30938
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2186 fm.end() |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2187 |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2188 return problems |
fec3dbaa7f83
debugcommands: extract debuginstall in the debugcommands module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30775
diff
changeset
|
2189 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2190 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2191 @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
|
2192 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
|
2193 """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
|
2194 |
e1fa5fe9f9d4
debugcommands: move 'debugknown' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30938
diff
changeset
|
2195 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
|
2196 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
|
2197 """ |
50967
0cf89b099d42
debugknown: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50966
diff
changeset
|
2198 repo = hg.peer(ui, pycompat.byteskwargs(opts), repopath) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2199 if not repo.capable(b'known'): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2200 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
|
2201 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
|
2202 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
|
2203 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2204 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2205 @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
|
2206 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
|
2207 '''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
|
2208 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
|
2209 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2210 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2211 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2212 b'debuglocks', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2213 [ |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
2214 (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
|
2215 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2216 b'W', |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
2217 b'force-free-wlock', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2218 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2219 _(b'free the working state lock (DANGEROUS)'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2220 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2221 (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
|
2222 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2223 b'S', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2224 b'set-wlock', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2225 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2226 _(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
|
2227 ), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2228 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2229 _(b'[OPTION]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2230 ) |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2231 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
|
2232 """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
|
2233 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2234 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
|
2235 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
|
2236 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
|
2237 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
|
2238 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2239 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
|
2240 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
|
2241 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
|
2242 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
|
2243 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2244 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
|
2245 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
|
2246 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
|
2247 |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2248 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
|
2249 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
|
2250 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
|
2251 |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2252 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
|
2253 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2254 """ |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2255 |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
2256 if opts.get('force_free_lock'): |
48835
020378f32d57
debuglock: ignore ENOENT error when unlocking
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48705
diff
changeset
|
2257 repo.svfs.tryunlink(b'lock') |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
2258 if opts.get('force_free_wlock'): |
48835
020378f32d57
debuglock: ignore ENOENT error when unlocking
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48705
diff
changeset
|
2259 repo.vfs.tryunlink(b'wlock') |
46237
bc884e31b8c8
debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46211
diff
changeset
|
2260 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
|
2261 return 0 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2262 |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2263 locks = [] |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2264 try: |
51985
a8e1ff9ac257
tests: fix a test hang on Windows when setting a debuglock
Matt Harbison <matt_harbison@yahoo.com>
parents:
51975
diff
changeset
|
2265 # Help the tests out on Windows by writing the correct PID when |
a8e1ff9ac257
tests: fix a test hang on Windows when setting a debuglock
Matt Harbison <matt_harbison@yahoo.com>
parents:
51975
diff
changeset
|
2266 # invoked by the test harness, before creating the lock. |
a8e1ff9ac257
tests: fix a test hang on Windows when setting a debuglock
Matt Harbison <matt_harbison@yahoo.com>
parents:
51975
diff
changeset
|
2267 pids = encoding.environ.get(b'DAEMON_PIDS') |
a8e1ff9ac257
tests: fix a test hang on Windows when setting a debuglock
Matt Harbison <matt_harbison@yahoo.com>
parents:
51975
diff
changeset
|
2268 if pids: |
a8e1ff9ac257
tests: fix a test hang on Windows when setting a debuglock
Matt Harbison <matt_harbison@yahoo.com>
parents:
51975
diff
changeset
|
2269 with open(pids, "ab") as fp: |
a8e1ff9ac257
tests: fix a test hang on Windows when setting a debuglock
Matt Harbison <matt_harbison@yahoo.com>
parents:
51975
diff
changeset
|
2270 fp.write(b'%d\n' % os.getpid()) |
a8e1ff9ac257
tests: fix a test hang on Windows when setting a debuglock
Matt Harbison <matt_harbison@yahoo.com>
parents:
51975
diff
changeset
|
2271 |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2272 if opts.get('set_wlock'): |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2273 try: |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2274 locks.append(repo.wlock(False)) |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2275 except error.LockHeld: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2276 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
|
2277 if opts.get('set_lock'): |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2278 try: |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2279 locks.append(repo.lock(False)) |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2280 except error.LockHeld: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2281 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
|
2282 if len(locks): |
49229
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2283 try: |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2284 if ui.interactive(): |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2285 prompt = _(b"ready to release the lock (y)? $$ &Yes") |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2286 ui.promptchoice(prompt) |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2287 else: |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2288 msg = b"%d locks held, waiting for signal\n" |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2289 msg %= len(locks) |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2290 ui.status(msg) |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2291 while True: # XXX wait for a signal |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2292 time.sleep(0.1) |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2293 except KeyboardInterrupt: |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2294 msg = b"signal-received releasing locks\n" |
883be4c74d54
debuglock: make the command more useful in non-interactive mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49215
diff
changeset
|
2295 ui.status(msg) |
35402
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2296 return 0 |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2297 finally: |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2298 release(*locks) |
12055fb3ba30
debuglocks: allow setting a lock
Paul Morelle <paul.morelle@octobus.net>
parents:
35401
diff
changeset
|
2299 |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2300 now = time.time() |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2301 held = 0 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2302 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2303 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
|
2304 # 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
|
2305 try: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2306 l = method(False) |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2307 except error.LockHeld: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2308 l = None |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2309 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2310 if l: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2311 l.release() |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2312 else: |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2313 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
|
2314 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
|
2315 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
|
2316 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
|
2317 locker = vfs.readlock(name) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2318 if b":" in locker: |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2319 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
|
2320 if host == socket.gethostname(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2321 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
|
2322 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2323 locker = b'user %s, process %s, host %s' % ( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2324 user or b'None', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2325 pid, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2326 host, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2327 ) |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
2328 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
|
2329 return 1 |
49314
2e726c934fcd
py3: catch FileNotFoundError instead of checking errno == ENOENT
Manuel Jacob <me@manueljacob.de>
parents:
49292
diff
changeset
|
2330 except FileNotFoundError: |
2e726c934fcd
py3: catch FileNotFoundError instead of checking errno == ENOENT
Manuel Jacob <me@manueljacob.de>
parents:
49292
diff
changeset
|
2331 pass |
30958
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2332 |
43080
86e4daa2d54c
cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
2333 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
|
2334 return 0 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2335 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2336 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
|
2337 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
|
2338 |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2339 return held |
23c801570449
debugcommands: move 'debuglocks' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30957
diff
changeset
|
2340 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2341 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2342 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2343 b'debugmanifestfulltextcache', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2344 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2345 (b'', b'clear', False, _(b'clear the cache')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2346 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2347 b'a', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2348 b'add', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2349 [], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2350 _(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
|
2351 _(b'NODE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2352 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2353 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2354 b'', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2355 ) |
41963
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2356 def debugmanifestfulltextcache(ui, repo, add=(), **opts): |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2357 """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
|
2358 |
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
|
2359 def getcache(): |
39272
73cf21b2e8a6
manifest: add getstorage() to manifestlog and use it globally
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39196
diff
changeset
|
2360 r = repo.manifestlog.getstorage(b'') |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2361 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
|
2362 return r._fulltextcache |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2363 except AttributeError: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2364 msg = _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2365 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
|
2366 b"manifest fulltext cache\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2367 ) |
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
|
2368 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
|
2369 |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2370 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
|
2371 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
|
2372 cache = getcache() |
41952
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41948
diff
changeset
|
2373 cache.clear(clear_persisted_data=True) |
b74ef67573e5
manifestcache: actually honor --clear
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41948
diff
changeset
|
2374 return |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2375 |
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
|
2376 if add: |
41969
d121823072b8
manifestcache: protect write with `wlock` instead of `lock`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41964
diff
changeset
|
2377 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
|
2378 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
|
2379 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
|
2380 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
|
2381 try: |
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2382 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
|
2383 except error.LookupError as e: |
46396
8408c3198ec1
debug: convert a few exceptions to bytes before wrapping in another error
Matt Harbison <matt_harbison@yahoo.com>
parents:
46237
diff
changeset
|
2384 raise error.Abort( |
8408c3198ec1
debug: convert a few exceptions to bytes before wrapping in another error
Matt Harbison <matt_harbison@yahoo.com>
parents:
46237
diff
changeset
|
2385 bytes(e), hint=b"Check your manifest node id" |
8408c3198ec1
debug: convert a few exceptions to bytes before wrapping in another error
Matt Harbison <matt_harbison@yahoo.com>
parents:
46237
diff
changeset
|
2386 ) |
41963
1fe278aa4ad5
manifestcache: support multiple cache addition in one debug command run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41952
diff
changeset
|
2387 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
|
2388 return |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2389 |
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
|
2390 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
|
2391 if not len(cache): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2392 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
|
2393 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
|
2394 ui.write( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2395 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2396 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
|
2397 b'least recent:\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2398 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2399 % (len(cache),) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2400 ) |
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
|
2401 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
|
2402 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
|
2403 # 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
|
2404 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
|
2405 size = len(data) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2406 totalsize += size + 24 # 20 bytes nodeid, 4 bytes size |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2407 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2408 _(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
|
2409 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2410 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
|
2411 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2412 _(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
|
2413 % (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
|
2414 ) |
38821
0a57945aaf7f
manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com>
parents:
38707
diff
changeset
|
2415 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2416 |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2417 @command(b'debugmergestate', [] + cmdutil.templateopts, b'') |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2418 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
|
2419 """print merge state |
8de38479d60b
debugcommands: move 'debugmergestate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30955
diff
changeset
|
2420 |
8de38479d60b
debugcommands: move 'debugmergestate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30955
diff
changeset
|
2421 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
|
2422 was chosen.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2423 |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2424 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
|
2425 ms = mergestatemod.mergestate(repo) |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2426 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2427 # sort so that reasonable information is on top |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2428 v1records = ms._readrecordsv1() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2429 v2records = ms._readrecordsv2() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2430 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2431 if not v1records and not v2records: |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2432 pass |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2433 elif not v2records: |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2434 ui.writenoi18n(b'no version 2 merge state\n') |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2435 elif ms._v1v2match(v1records, v2records): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2436 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
|
2437 else: |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2438 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
|
2439 |
50968
81801dc55819
debugmergestate: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50967
diff
changeset
|
2440 if not opts['template']: |
81801dc55819
debugmergestate: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50967
diff
changeset
|
2441 opts['template'] = ( |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2442 b'{if(commits, "", "no merge state found\n")}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2443 b'{commits % "{name}{if(label, " ({label})")}: {node}\n"}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2444 b'{files % "file: {path} (state \\"{state}\\")\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2445 b'{if(local_path, "' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2446 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
|
2447 b' ancestor path: {ancestor_path} (node {ancestor_node})\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2448 b' other path: {other_path} (node {other_node})\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2449 b'")}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2450 b'{if(rename_side, "' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2451 b' rename side: {rename_side}\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2452 b' renamed path: {renamed_path}\n' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2453 b'")}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2454 b'{extras % " extra: {key} = {value}\n"}' |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2455 b'"}' |
45456
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2456 b'{extras % "extra: {file} ({key} = {value})\n"}' |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2457 ) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2458 |
44915
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
44662
diff
changeset
|
2459 ms = mergestatemod.mergestate.read(repo) |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2460 |
50968
81801dc55819
debugmergestate: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50967
diff
changeset
|
2461 fm = ui.formatter(b'debugmergestate', pycompat.byteskwargs(opts)) |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2462 fm.startitem() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2463 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2464 fm_commits = fm.nested(b'commits') |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2465 if ms.active(): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2466 for name, node, label_index in ( |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2467 (b'local', ms.local, 0), |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2468 (b'other', ms.other, 1), |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2469 ): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2470 fm_commits.startitem() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2471 fm_commits.data(name=name) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2472 fm_commits.data(node=hex(node)) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2473 if ms._labels and len(ms._labels) > label_index: |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2474 fm_commits.data(label=ms._labels[label_index]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2475 fm_commits.end() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2476 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2477 fm_files = fm.nested(b'files') |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2478 if ms.active(): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2479 for f in ms: |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2480 fm_files.startitem() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2481 fm_files.data(path=f) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2482 state = ms._state[f] |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2483 fm_files.data(state=state[0]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2484 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
|
2485 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
|
2486 mergestatemod.MERGE_RECORD_RESOLVED, |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2487 ): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2488 fm_files.data(local_key=state[1]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2489 fm_files.data(local_path=state[2]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2490 fm_files.data(ancestor_path=state[3]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2491 fm_files.data(ancestor_node=state[4]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2492 fm_files.data(other_path=state[5]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2493 fm_files.data(other_node=state[6]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2494 fm_files.data(local_flags=state[7]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2495 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
|
2496 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
|
2497 mergestatemod.MERGE_RECORD_RESOLVED_PATH, |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2498 ): |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2499 fm_files.data(renamed_path=state[1]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2500 fm_files.data(rename_side=state[2]) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2501 fm_extras = fm_files.nested(b'extras') |
45457
00e4e97c6bc8
debugmergestate: sort extras before printing
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45456
diff
changeset
|
2502 for k, v in sorted(ms.extras(f).items()): |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2503 fm_extras.startitem() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2504 fm_extras.data(key=k) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2505 fm_extras.data(value=v) |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2506 fm_extras.end() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2507 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2508 fm_files.end() |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2509 |
45456
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2510 fm_extras = fm.nested(b'extras') |
49012
c9774f5fa729
debugcommands: remove pycompat.iteritems()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
49004
diff
changeset
|
2511 for f, d in sorted(ms.allextras().items()): |
45456
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2512 if f in ms: |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2513 # 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
|
2514 continue |
49004
f254fc73d956
global: bulk replace simple pycompat.iteritems(x) with x.items()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48966
diff
changeset
|
2515 for k, v in d.items(): |
45456
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2516 fm_extras.startitem() |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2517 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
|
2518 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
|
2519 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
|
2520 fm_extras.end() |
766797f23f77
debugmergestate: show extras for files which are not in mergestate
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45341
diff
changeset
|
2521 |
44427
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44397
diff
changeset
|
2522 fm.end() |
30956
8de38479d60b
debugcommands: move 'debugmergestate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30955
diff
changeset
|
2523 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2524 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2525 @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
|
2526 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
|
2527 '''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
|
2528 |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2529 names = set() |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2530 # 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
|
2531 # specially (after this for loop) |
49004
f254fc73d956
global: bulk replace simple pycompat.iteritems(x) with x.items()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48966
diff
changeset
|
2532 for name, ns in repo.names.items(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2533 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
|
2534 names.update(ns.listnames(repo)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2535 names.update( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2536 tag |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2537 for (tag, heads, tip, closed) in repo.branchmap().iterbranches() |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2538 if not closed |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2539 ) |
30957
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2540 completions = set() |
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2541 if not args: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2542 args = [b''] |
30957
a9aa67ba3f96
debugcommands: move 'debugnamecomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30956
diff
changeset
|
2543 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
|
2544 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
|
2545 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
|
2546 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
|
2547 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2548 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2549 @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
|
2550 b'debugnodemap', |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2551 ( |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2552 cmdutil.debugrevlogopts |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2553 + [ |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2554 ( |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2555 b'', |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2556 b'dump-new', |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2557 False, |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2558 _(b'write a (new) persistent binary nodemap on stdout'), |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2559 ), |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2560 (b'', b'dump-disk', False, _(b'dump on-disk data on stdout')), |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2561 ( |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2562 b'', |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2563 b'check', |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2564 False, |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2565 _(b'check that the data on disk data are correct.'), |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2566 ), |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2567 ( |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2568 b'', |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2569 b'metadata', |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2570 False, |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2571 _(b'display the on disk meta data for the nodemap'), |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2572 ), |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2573 ] |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2574 ), |
50579
720a23405fe9
debug: update usage strings of debugignore and debugnodemap
Anton Shestakov <av6@dwimlabs.net>
parents:
50578
diff
changeset
|
2575 _(b'-c|-m|FILE'), |
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
|
2576 ) |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2577 def debugnodemap(ui, repo, file_=None, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
2578 """write and inspect on disk nodemap""" |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2579 if opts.get('changelog') or opts.get('manifest') or opts.get('dir'): |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2580 if file_ is not None: |
50578
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
2581 raise error.InputError( |
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
2582 _(b'cannot specify a file with other arguments') |
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
2583 ) |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2584 elif file_ is None: |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2585 opts['changelog'] = True |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2586 r = cmdutil.openstorage( |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2587 repo.unfiltered(), b'debugnodemap', file_, pycompat.byteskwargs(opts) |
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2588 ) |
50580
9dcb00842769
debug: `isinstance(a, x) or isinstance(a, y)` is `isinstance(a, (x, y))`
Anton Shestakov <av6@dwimlabs.net>
parents:
50579
diff
changeset
|
2589 if isinstance(r, (manifest.manifestrevlog, filelog.filelog)): |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2590 r = r._revlog |
44352
6c07480d6659
nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44350
diff
changeset
|
2591 if opts['dump_new']: |
50951
d718eddf01d9
safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50715
diff
changeset
|
2592 if hasattr(r.index, "nodemap_data_all"): |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2593 data = r.index.nodemap_data_all() |
44522
febe88a6f7f7
nodemap: use data from the index in debugnodemap --dump-new
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44481
diff
changeset
|
2594 else: |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2595 data = nodemap.persistent_data(r.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
|
2596 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
|
2597 elif opts['dump_disk']: |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2598 nm_data = nodemap.persisted_data(r) |
44366
76a96e3a2bbb
nodemap: keep track of the docket for loaded data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44361
diff
changeset
|
2599 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
|
2600 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
|
2601 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
|
2602 elif opts['check']: |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2603 nm_data = nodemap.persisted_data(r) |
44366
76a96e3a2bbb
nodemap: keep track of the docket for loaded data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44361
diff
changeset
|
2604 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
|
2605 docket, data = nm_data |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2606 return nodemap.check_data(ui, r.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
|
2607 elif opts['metadata']: |
50543
1b73868d17cf
cli: make debugnodemap capable of inspecting an arbitrary nodemap
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
50460
diff
changeset
|
2608 nm_data = nodemap.persisted_data(r) |
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
|
2609 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
|
2610 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
|
2611 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
|
2612 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
|
2613 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
|
2614 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
|
2615 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
|
2616 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
|
2617 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
|
2618 |
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
|
2619 |
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
|
2620 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2621 b'debugobsolete', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2622 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2623 (b'', b'flags', 0, _(b'markers flag')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2624 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2625 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2626 b'record-parents', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2627 False, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2628 _(b'record parent information for the precursor'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2629 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2630 (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
|
2631 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2632 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2633 b'exclusive', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2634 False, |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
2635 _(b'restrict display to markers only relevant to REV'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2636 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2637 (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
|
2638 (b'', b'delete', [], _(b'delete markers specified by indices')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2639 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2640 + cmdutil.commitopts2 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2641 + cmdutil.formatteropts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2642 _(b'[OBSOLETED [REPLACEMENT ...]]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2643 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2644 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
|
2645 """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
|
2646 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2647 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
|
2648 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2649 def parsenodeid(s): |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2650 try: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2651 # 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
|
2652 # 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
|
2653 # local repository. |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2654 n = bin(s) |
47055
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46961
diff
changeset
|
2655 if len(n) != repo.nodeconstants.nodelen: |
49263
63fd0282ad40
node: stop converting binascii.Error to TypeError in bin()
Manuel Jacob <me@manueljacob.de>
parents:
49249
diff
changeset
|
2656 raise ValueError |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2657 return n |
49263
63fd0282ad40
node: stop converting binascii.Error to TypeError in bin()
Manuel Jacob <me@manueljacob.de>
parents:
49249
diff
changeset
|
2658 except ValueError: |
45889
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2659 raise error.InputError( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2660 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
|
2661 b'node identifiers' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2662 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2663 |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2664 if opts.get('delete'): |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2665 indices = [] |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2666 for v in opts.get('delete'): |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2667 try: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2668 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
|
2669 except ValueError: |
45889
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2670 raise error.InputError( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2671 _(b'invalid index value: %r') % v, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2672 hint=_(b'use integers for indices'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2673 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2674 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2675 if repo.currenttransaction(): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2676 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
|
2677 _(b'cannot delete obsmarkers in the middle of transaction.') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2678 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2679 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2680 with repo.lock(): |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2681 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
|
2682 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
|
2683 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2684 return |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2685 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2686 if precursor is not None: |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2687 if opts['rev']: |
45889
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2688 raise error.InputError( |
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2689 b'cannot select revision when creating marker' |
1a72e4839795
errors: raise InputError in `hg debugobsolete`
Martin von Zweigbergk <martinvonz@google.com>
parents:
45880
diff
changeset
|
2690 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2691 metadata = {} |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2692 metadata[b'user'] = encoding.fromlocal(opts['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
|
2693 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
|
2694 l = repo.lock() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2695 try: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2696 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
|
2697 try: |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2698 date = opts.get('date') |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2699 if date: |
36636
c6061cadb400
util: extract all date-related utils in utils/dateutil module
Boris Feld <boris.feld@octobus.net>
parents:
36616
diff
changeset
|
2700 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
|
2701 else: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2702 date = None |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2703 prec = parsenodeid(precursor) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2704 parents = None |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2705 if opts['record_parents']: |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2706 if prec not in repo.unfiltered(): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2707 raise error.Abort( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2708 b'cannot used --record-parents on ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2709 b'unknown changesets' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2710 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2711 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
|
2712 parents = tuple(p.node() for p in parents) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2713 repo.obsstore.create( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2714 tr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2715 prec, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2716 succs, |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2717 opts['flags'], |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2718 parents=parents, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2719 date=date, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2720 metadata=metadata, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2721 ui=ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2722 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2723 tr.close() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2724 except ValueError as exc: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2725 raise error.Abort( |
46396
8408c3198ec1
debug: convert a few exceptions to bytes before wrapping in another error
Matt Harbison <matt_harbison@yahoo.com>
parents:
46237
diff
changeset
|
2726 _(b'bad obsmarker input: %s') % stringutil.forcebytestr(exc) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2727 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2728 finally: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2729 tr.release() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2730 finally: |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2731 l.release() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2732 else: |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2733 if opts['rev']: |
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2734 revs = logcmdutil.revrange(repo, opts['rev']) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2735 nodes = [repo[r].node() for r in revs] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2736 markers = list( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2737 obsutil.getmarkers( |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2738 repo, nodes=nodes, exclusive=opts['exclusive'] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2739 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2740 ) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2741 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
|
2742 else: |
33155
a14e2e7f7d1f
obsutil: move 'getmarkers' to the new modules
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33154
diff
changeset
|
2743 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
|
2744 |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2745 markerstoiter = markers |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2746 isrelevant = lambda m: True |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2747 if opts.get('rev') and opts.get('index'): |
33155
a14e2e7f7d1f
obsutil: move 'getmarkers' to the new modules
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
33154
diff
changeset
|
2748 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
|
2749 markerset = set(markers) |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2750 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
|
2751 |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2752 fm = ui.formatter(b'debugobsolete', pycompat.byteskwargs(opts)) |
30959
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2753 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
|
2754 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
|
2755 # 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
|
2756 # 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
|
2757 # 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
|
2758 # 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
|
2759 # 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
|
2760 # 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
|
2761 # 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
|
2762 continue |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2763 fm.startitem() |
50969
55c28ffadb14
debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50968
diff
changeset
|
2764 ind = i if opts.get('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
|
2765 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
|
2766 fm.end() |
9e39d196cdf5
debugcommands: move 'debugobsolete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30958
diff
changeset
|
2767 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2768 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2769 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2770 b'debugp1copies', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2771 [(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
|
2772 _(b'[-r REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2773 ) |
41764
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2774 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
|
2775 """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
|
2776 |
50970
91c32fccd282
debugp1copies: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50969
diff
changeset
|
2777 ctx = scmutil.revsingle(repo, opts.get('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
|
2778 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
|
2779 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
|
2780 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2781 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2782 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2783 b'debugp2copies', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2784 [(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
|
2785 _(b'[-r REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2786 ) |
49289
223d55086d7c
cleanup: rename some functions to avoid redefinitions
Manuel Jacob <me@manueljacob.de>
parents:
49268
diff
changeset
|
2787 def debugp2copies(ui, repo, **opts): |
41764
a4358f7345b4
context: introduce p[12]copies() methods and debugp[12]copies commands
Martin von Zweigbergk <martinvonz@google.com>
parents:
41758
diff
changeset
|
2788 """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
|
2789 |
50971
1e2be2c9a74d
debugp2copies: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50970
diff
changeset
|
2790 ctx = scmutil.revsingle(repo, opts.get('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
|
2791 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
|
2792 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
|
2793 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2794 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2795 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2796 b'debugpathcomplete', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2797 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2798 (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
|
2799 (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
|
2800 (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
|
2801 (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
|
2802 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2803 _(b'FILESPEC...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2804 ) |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2805 def debugpathcomplete(ui, repo, *specs, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
2806 """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
|
2807 |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2808 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
|
2809 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
|
2810 |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2811 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
|
2812 --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
|
2813 |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2814 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
|
2815 dirstate = repo.dirstate |
39823
24e493ec2229
py3: rename pycompat.getcwd() to encoding.getcwd() (API)
Matt Harbison <matt_harbison@yahoo.com>
parents:
39776
diff
changeset
|
2816 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
|
2817 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
|
2818 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
|
2819 return [], [] |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2820 if os.path.isdir(spec): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2821 spec += b'/' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2822 spec = spec[len(rootdir) :] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2823 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
|
2824 if fixpaths: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2825 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
|
2826 speclen = len(spec) |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2827 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
|
2828 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
|
2829 adddir, addfile = dirs.add, files.add |
49004
f254fc73d956
global: bulk replace simple pycompat.iteritems(x) with x.items()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48966
diff
changeset
|
2830 for f, st in dirstate.items(): |
47544
5363610f61ef
dirstate-item: use the `state` property in debugpathcomplete
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47444
diff
changeset
|
2831 if f.startswith(spec) and st.state in acceptable: |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2832 if fixpaths: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2833 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
|
2834 if fullpaths: |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2835 addfile(f) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2836 continue |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2837 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
|
2838 if s >= 0: |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2839 adddir(f[:s]) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2840 else: |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2841 addfile(f) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2842 return files, dirs |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2843 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2844 acceptable = b'' |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2845 if opts['normal']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2846 acceptable += b'nm' |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2847 if opts['added']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2848 acceptable += b'a' |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
2849 if opts['removed']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2850 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
|
2851 cwd = repo.getcwd() |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2852 if not specs: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2853 specs = [b'.'] |
30960
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2854 |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2855 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
|
2856 for spec in specs: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2857 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
|
2858 files.update(f) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2859 dirs.update(d) |
c8081ea63591
debugcommands: move 'debugpathcomplete' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30959
diff
changeset
|
2860 files.update(dirs) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2861 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
|
2862 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
|
2863 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2864 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2865 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2866 b'debugpathcopies', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2867 cmdutil.walkopts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2868 b'hg debugpathcopies REV1 REV2 [FILE]', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2869 inferrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2870 ) |
41529
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2871 def debugpathcopies(ui, repo, rev1, rev2, *pats, **opts): |
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2872 """show copies between two revisions""" |
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2873 ctx1 = scmutil.revsingle(repo, rev1) |
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2874 ctx2 = scmutil.revsingle(repo, rev2) |
7dc160a57025
debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com>
parents:
41387
diff
changeset
|
2875 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
|
2876 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
|
2877 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
|
2878 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2879 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2880 @command(b'debugpeer', [], _(b'PATH'), norepo=True) |
35969
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2881 def debugpeer(ui, path): |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2882 """establish a connection to a peer repository""" |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2883 # Always enable peer request logging. Requires --debug to display |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2884 # though. |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2885 overrides = { |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2886 (b'devel', b'debug.peer-request'): True, |
35969
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2887 } |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2888 |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2889 with ui.configoverride(overrides): |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2890 peer = hg.peer(ui, {}, path) |
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2891 |
46702
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2892 try: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2893 local = peer.local() is not None |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2894 canpush = peer.canpush() |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2895 |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2896 ui.write(_(b'url: %s\n') % peer.url()) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2897 ui.write(_(b'local: %s\n') % (_(b'yes') if local else _(b'no'))) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2898 ui.write( |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2899 _(b'pushable: %s\n') % (_(b'yes') if canpush else _(b'no')) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2900 ) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2901 finally: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
2902 peer.close() |
35969
5f029d03cf71
debugcommands: introduce debugpeer command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35942
diff
changeset
|
2903 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2904 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2905 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2906 b'debugpickmergetool', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2907 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2908 (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
|
2909 (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
|
2910 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2911 + cmdutil.walkopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2912 + cmdutil.mergetoolopts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2913 _(b'[PATTERN]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2914 inferrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2915 ) |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2916 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
|
2917 """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
|
2918 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2919 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
|
2920 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
|
2921 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
|
2922 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2923 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
|
2924 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
|
2925 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
|
2926 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
|
2927 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
|
2928 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
|
2929 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
|
2930 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2931 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
|
2932 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2933 FILE = MERGETOOL |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2934 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2935 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
|
2936 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
|
2937 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
|
2938 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
|
2939 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2940 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
|
2941 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
|
2942 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
|
2943 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
|
2944 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
|
2945 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2946 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
|
2947 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
|
2948 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2949 - ``--tool`` option |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2950 - ``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
|
2951 - 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
|
2952 |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2953 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
|
2954 ``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
|
2955 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
|
2956 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
|
2957 """ |
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2958 overrides = {} |
50972
206d7fad2a1c
debugpickmergetool: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50971
diff
changeset
|
2959 if opts['tool']: |
206d7fad2a1c
debugpickmergetool: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50971
diff
changeset
|
2960 overrides[(b'ui', b'forcemerge')] = opts['tool'] |
206d7fad2a1c
debugpickmergetool: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50971
diff
changeset
|
2961 ui.notenoi18n(b'with --tool %r\n' % (pycompat.bytestr(opts['tool']))) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2962 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2963 with ui.configoverride(overrides, b'debugmergepatterns'): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2964 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
|
2965 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
|
2966 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
|
2967 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
|
2968 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
|
2969 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
|
2970 |
50972
206d7fad2a1c
debugpickmergetool: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50971
diff
changeset
|
2971 ctx = scmutil.revsingle(repo, opts.get('rev')) |
206d7fad2a1c
debugpickmergetool: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50971
diff
changeset
|
2972 m = scmutil.match(ctx, pats, pycompat.byteskwargs(opts)) |
206d7fad2a1c
debugpickmergetool: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50971
diff
changeset
|
2973 changedelete = opts['changedelete'] |
32296
9bc36198338e
debugcommands: add debugpickmergetool to examine which merge tool is chosen
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32269
diff
changeset
|
2974 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
|
2975 fctx = ctx[path] |
47443
7a430116f639
ui: add a context manager for silencing the ui (pushbuffer+popbuffer)
Martin von Zweigbergk <martinvonz@google.com>
parents:
47357
diff
changeset
|
2976 with ui.silent( |
7a430116f639
ui: add a context manager for silencing the ui (pushbuffer+popbuffer)
Martin von Zweigbergk <martinvonz@google.com>
parents:
47357
diff
changeset
|
2977 error=True |
7a430116f639
ui: add a context manager for silencing the ui (pushbuffer+popbuffer)
Martin von Zweigbergk <martinvonz@google.com>
parents:
47357
diff
changeset
|
2978 ) if not ui.debugflag else util.nullcontextmanager(): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2979 tool, toolpath = filemerge._picktool( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2980 repo, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2981 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2982 path, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2983 fctx.isbinary(), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2984 b'l' in fctx.flags(), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2985 changedelete, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
2986 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2987 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
|
2988 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2989 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
2990 @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
|
2991 def debugpushkey(ui, repopath, namespace, *keyinfo, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
2992 """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
|
2993 |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2994 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
|
2995 |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2996 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
|
2997 Reports success or failure. |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
2998 """ |
30966
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
2999 |
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
3000 target = hg.peer(ui, {}, repopath) |
46702
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3001 try: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3002 if keyinfo: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3003 key, old, new = keyinfo |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3004 with target.commandexecutor() as e: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3005 r = e.callcommand( |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3006 b'pushkey', |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3007 { |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3008 b'namespace': namespace, |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3009 b'key': key, |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3010 b'old': old, |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3011 b'new': new, |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3012 }, |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3013 ).result() |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3014 |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3015 ui.status(pycompat.bytestr(r) + b'\n') |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3016 return not r |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3017 else: |
49012
c9774f5fa729
debugcommands: remove pycompat.iteritems()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
49004
diff
changeset
|
3018 for k, v in sorted(target.listkeys(namespace).items()): |
46702
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3019 ui.write( |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3020 b"%s\t%s\n" |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3021 % (stringutil.escapestr(k), stringutil.escapestr(v)) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3022 ) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3023 finally: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
3024 target.close() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3025 |
30966
7103122495e2
debugcommands: move 'debugpushkey' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30960
diff
changeset
|
3026 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3027 @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
|
3028 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
|
3029 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
|
3030 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
|
3031 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
|
3032 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
|
3033 if pa == pb: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3034 rel = b"=" |
30967
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
3035 elif pa > pb: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3036 rel = b">" |
30967
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
3037 elif pa < pb: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3038 rel = b"<" |
30967
3c766ca89377
debugcommands: move 'debugpvec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30966
diff
changeset
|
3039 elif pa | pb: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3040 rel = b"|" |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3041 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
|
3042 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
|
3043 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
|
3044 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3045 _(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
|
3046 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3047 abs(pa._depth - pb._depth), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3048 pvec._hamming(pa._vec, pb._vec), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3049 pa.distance(pb), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3050 rel, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3051 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3052 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3053 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3054 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3055 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3056 b'debugrebuilddirstate|debugrebuildstate', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3057 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3058 (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
|
3059 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3060 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3061 b'minimal', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3062 None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3063 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3064 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
|
3065 b'the working copy parent' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3066 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3067 ), |
30968
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3068 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3069 _(b'[-r REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3070 ) |
30968
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3071 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
|
3072 """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
|
3073 |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3074 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
|
3075 |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3076 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
|
3077 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
|
3078 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
|
3079 |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3080 ``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
|
3081 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
|
3082 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
|
3083 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
|
3084 |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3085 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
|
3086 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
|
3087 """ |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3088 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
|
3089 with repo.wlock(): |
50056
1f28172cfce9
debugrebuilddirstate: double check that no transaction is open
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50055
diff
changeset
|
3090 if repo.currenttransaction() is not None: |
1f28172cfce9
debugrebuilddirstate: double check that no transaction is open
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50055
diff
changeset
|
3091 msg = b'rebuild the dirstate outside of a transaction' |
1f28172cfce9
debugrebuilddirstate: double check that no transaction is open
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50055
diff
changeset
|
3092 raise error.ProgrammingError(msg) |
30968
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3093 dirstate = repo.dirstate |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3094 changedfiles = None |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3095 # 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
|
3096 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
|
3097 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
|
3098 dirstatefiles = set(dirstate) |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3099 manifestonly = manifestfiles - dirstatefiles |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3100 dsonly = dirstatefiles - manifestfiles |
48113
78e66649cdb3
dirstate-item: use `added` in debugrebuilddirstate
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48101
diff
changeset
|
3101 dsnotadded = {f for f in dsonly if not dirstate.get_entry(f).added} |
30968
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3102 changedfiles = manifestonly | dsnotadded |
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3103 |
50162
dae8dda6f582
debugrebuildstate: wrap the operation in a `changing_parents` context
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50056
diff
changeset
|
3104 with dirstate.changing_parents(repo): |
dae8dda6f582
debugrebuildstate: wrap the operation in a `changing_parents` context
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50056
diff
changeset
|
3105 dirstate.rebuild(ctx.node(), ctx.manifest(), changedfiles) |
30968
cc2b537b1966
debugcommands: move 'debugrebuilddirstate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30967
diff
changeset
|
3106 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3107 |
47916
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3108 @command( |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3109 b'debugrebuildfncache', |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3110 [ |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3111 ( |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3112 b'', |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3113 b'only-data', |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3114 False, |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3115 _(b'only look for wrong .d files (much faster)'), |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3116 ) |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3117 ], |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3118 b'', |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3119 ) |
0fb328bb2459
debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
47812
diff
changeset
|
3120 def debugrebuildfncache(ui, repo, **opts): |
30969
e7d7335819f4
debugcommands: move 'debugrebuildfncache' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30968
diff
changeset
|
3121 """rebuild the fncache file""" |
50973
a0fcdcc53618
debugrebuildfncache: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50972
diff
changeset
|
3122 repair.rebuildfncache(ui, repo, opts.get("only_data")) |
30969
e7d7335819f4
debugcommands: move 'debugrebuildfncache' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30968
diff
changeset
|
3123 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3124 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3125 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3126 b'debugrename', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3127 [(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
|
3128 _(b'[-r REV] [FILE]...'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3129 ) |
41701
ea72da71ad69
debugrename: don't require at least one path
Martin von Zweigbergk <martinvonz@google.com>
parents:
41682
diff
changeset
|
3130 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
|
3131 """dump rename information""" |
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
3132 |
50974
7ef74fc79900
debugrename: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50973
diff
changeset
|
3133 ctx = scmutil.revsingle(repo, opts.get('rev')) |
7ef74fc79900
debugrename: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50973
diff
changeset
|
3134 m = scmutil.match(ctx, pats, pycompat.byteskwargs(opts)) |
30970
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
3135 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
|
3136 fctx = ctx[abs] |
7236f949ce3f
debugcommands: move 'debugrename' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30969
diff
changeset
|
3137 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
|
3138 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
|
3139 if o: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3140 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
|
3141 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3142 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
|
3143 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3144 |
45107
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
3145 @command(b'debugrequires|debugrequirements', [], b'') |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
3146 def debugrequirements(ui, repo): |
47031
f38bf44e077f
black: make codebase compatible with black v21.4b2 and v20.8b1
Kyle Lippincott <spectral@google.com>
parents:
47030
diff
changeset
|
3147 """print the current repo requirements""" |
45107
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
3148 for r in sorted(repo.requirements): |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
3149 ui.write(b"%s\n" % r) |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
3150 |
4a28f5e8408e
debugcommands: introduce new debugrequirements command
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45100
diff
changeset
|
3151 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3152 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3153 b'debugrevlog', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3154 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
|
3155 _(b'-c|-m|FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3156 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3157 ) |
30971
f44b96aef81b
debugcommands: move 'debugrevlog' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30970
diff
changeset
|
3158 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
|
3159 """show data and statistics about a revlog""" |
50975
8f25df137282
debugrevlog: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50974
diff
changeset
|
3160 r = cmdutil.openrevlog( |
8f25df137282
debugrevlog: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50974
diff
changeset
|
3161 repo, b'debugrevlog', file_, pycompat.byteskwargs(opts) |
8f25df137282
debugrevlog: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50974
diff
changeset
|
3162 ) |
8f25df137282
debugrevlog: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50974
diff
changeset
|
3163 |
8f25df137282
debugrevlog: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50974
diff
changeset
|
3164 if opts.get("dump"): |
49774
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49730
diff
changeset
|
3165 revlog_debug.dump(ui, r) |
42186
30033d56758f
debugrevlog: fix average size computation for empty data (issue6167)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42148
diff
changeset
|
3166 else: |
49775
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
3167 revlog_debug.debug_revlog(ui, r) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
3168 return 0 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3169 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3170 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3171 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3172 b'debugrevlogindex', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3173 cmdutil.debugrevlogopts |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3174 + [(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
|
3175 _(b'[-f FORMAT] -c|-m|FILE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3176 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3177 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3178 def debugrevlogindex(ui, repo, file_=None, **opts): |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3179 """dump the contents of a revlog index""" |
50976
56a966bc6b1a
debugrevlogindex: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50975
diff
changeset
|
3180 r = cmdutil.openrevlog( |
56a966bc6b1a
debugrevlogindex: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50975
diff
changeset
|
3181 repo, b'debugrevlogindex', file_, pycompat.byteskwargs(opts) |
56a966bc6b1a
debugrevlogindex: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50975
diff
changeset
|
3182 ) |
56a966bc6b1a
debugrevlogindex: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50975
diff
changeset
|
3183 format = opts.get('format', 0) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3184 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
|
3185 raise error.Abort(_(b"unknown format %d") % format) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3186 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3187 if ui.debugflag: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3188 shortfn = hex |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3189 else: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3190 shortfn = short |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3191 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3192 # 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
|
3193 idlen = 12 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3194 for i in r: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3195 idlen = len(shortfn(r.node(i))) |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3196 break |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3197 |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3198 if format == 0: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3199 if ui.verbose: |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3200 ui.writenoi18n( |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
3201 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
|
3202 % (b"nodeid".ljust(idlen), b"p1".ljust(idlen)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3203 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3204 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
|
3205 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3206 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
|
3207 % (b"nodeid".ljust(idlen), b"p1".ljust(idlen)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3208 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3209 elif format == 1: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3210 if ui.verbose: |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3211 ui.writenoi18n( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3212 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3213 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
|
3214 b" p2 %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3215 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3216 % b"nodeid".rjust(idlen) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3217 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3218 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
|
3219 ui.writenoi18n( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3220 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
|
3221 % b"nodeid".rjust(idlen) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3222 ) |
39309
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 for i in r: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3225 node = r.node(i) |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3226 if format == 0: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3227 try: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3228 pp = r.parents(node) |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3229 except Exception: |
47055
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46961
diff
changeset
|
3230 pp = [repo.nullid, repo.nullid] |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3231 if ui.verbose: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3232 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3233 b"% 6d % 9d % 7d % 7d %s %s %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3234 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3235 i, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3236 r.start(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3237 r.length(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3238 r.linkrev(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3239 shortfn(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3240 shortfn(pp[0]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3241 shortfn(pp[1]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3242 ) |
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: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3245 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3246 b"% 6d % 7d %s %s %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3247 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3248 i, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3249 r.linkrev(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3250 shortfn(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3251 shortfn(pp[0]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3252 shortfn(pp[1]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3253 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3254 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3255 elif format == 1: |
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3256 pr = r.parentrevs(i) |
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 %04x % 8d % 8d % 8d % 6d % 6d % 6d %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.flags(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3263 r.start(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3264 r.length(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3265 r.rawsize(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3266 r.linkrev(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3267 pr[0], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3268 pr[1], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3269 shortfn(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3270 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3271 ) |
39309
828a45233036
debugcommands: introduce debugrevlogindex (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39308
diff
changeset
|
3272 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3273 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3274 b"% 6d %04x % 8d % 6d % 6d % 6d %s\n" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3275 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3276 i, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3277 r.flags(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3278 r.rawsize(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3279 r.linkrev(i), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3280 pr[0], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3281 pr[1], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3282 shortfn(node), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3283 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3284 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3285 |
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 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3288 b'debugrevspec', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3289 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3290 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3291 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3292 b'optimize', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3293 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3294 _(b'print parsed tree after optimizing (DEPRECATED)'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3295 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3296 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3297 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3298 b'show-revs', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3299 True, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3300 _(b'print list of result revisions (default)'), |
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 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3303 b's', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3304 b'show-set', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3305 None, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3306 _(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
|
3307 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3308 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3309 b'p', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3310 b'show-stage', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3311 [], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3312 _(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
|
3313 _(b'NAME'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3314 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3315 (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
|
3316 (b'', b'verify-optimized', False, _(b'verify optimized result')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3317 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3318 b'REVSPEC', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3319 ) |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3320 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
|
3321 """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
|
3322 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3323 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
|
3324 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
|
3325 |
32816
bcca357bb792
debugrevspec: add option to suppress list of computed revisions
Yuya Nishihara <yuya@tcha.org>
parents:
32815
diff
changeset
|
3326 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
|
3327 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
|
3328 |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3329 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
|
3330 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
|
3331 """ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3332 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
|
3333 stages = [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3334 (b'parsed', lambda tree: tree), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3335 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3336 b'expanded', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3337 lambda tree: revsetlang.expandaliases(tree, aliases, ui.warn), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3338 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3339 (b'concatenated', revsetlang.foldconcat), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3340 (b'analyzed', revsetlang.analyze), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3341 (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
|
3342 ] |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3343 if opts['no_optimized']: |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3344 stages = stages[:-1] |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3345 if opts['verify_optimized'] and opts['no_optimized']: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3346 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
|
3347 _(b'cannot use --verify-optimized with --no-optimized') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3348 ) |
44470
9d2b2df2c2ba
cleanup: run pyupgrade on our source tree to clean up varying things
Augie Fackler <augie@google.com>
parents:
44453
diff
changeset
|
3349 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
|
3350 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3351 showalways = set() |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3352 showchanged = set() |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3353 if ui.verbose and not opts['show_stage']: |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3354 # 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
|
3355 showalways.add(b'parsed') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3356 showchanged.update([b'expanded', b'concatenated']) |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3357 if opts['optimize']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3358 showalways.add(b'optimized') |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3359 if opts['show_stage'] and opts['optimize']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3360 raise error.Abort(_(b'cannot use --optimize with --show-stage')) |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3361 if opts['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
|
3362 showalways.update(stagenames) |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3363 else: |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3364 for n in opts['show_stage']: |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3365 if n not in stagenames: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3366 raise error.Abort(_(b'invalid stage name: %s') % n) |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3367 showalways.update(opts['show_stage']) |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3368 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3369 treebystage = {} |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3370 printedtree = None |
37350
e32dfff71529
revset: use revsymbol() for checking if a symbol is valid
Martin von Zweigbergk <martinvonz@google.com>
parents:
37322
diff
changeset
|
3371 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
|
3372 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
|
3373 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
|
3374 if n in showalways or (n in showchanged and tree != printedtree): |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3375 if opts['show_stage'] or n != b'parsed': |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3376 ui.write(b"* %s:\n" % n) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3377 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
|
3378 printedtree = tree |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3379 |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3380 if opts['verify_optimized']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3381 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
|
3382 brevs = revset.makematcher(treebystage[b'optimized'])(repo) |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3383 if opts['show_set'] or (opts['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
|
3384 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3385 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
|
3386 ) |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3387 ui.writenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
3388 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
|
3389 ) |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3390 arevs = list(arevs) |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3391 brevs = list(brevs) |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3392 if arevs == brevs: |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3393 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
|
3394 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
|
3395 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
|
3396 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
|
3397 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
|
3398 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
|
3399 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
|
3400 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
|
3401 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
|
3402 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
|
3403 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
|
3404 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
|
3405 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
|
3406 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
|
3407 return 1 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3408 |
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3409 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
|
3410 revs = func(repo) |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3411 if opts['show_set'] or (opts['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
|
3412 ui.writenoi18n(b"* set:\n", stringutil.prettyrepr(revs), b"\n") |
50977
98d1117dc904
debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50976
diff
changeset
|
3413 if not opts['show_revs']: |
32816
bcca357bb792
debugrevspec: add option to suppress list of computed revisions
Yuya Nishihara <yuya@tcha.org>
parents:
32815
diff
changeset
|
3414 return |
30972
85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30971
diff
changeset
|
3415 for c in revs: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3416 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
|
3417 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3418 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3419 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3420 b'debugserve', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3421 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3422 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3423 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3424 b'sshstdio', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3425 False, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3426 _(b'run an SSH server bound to process handles'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3427 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3428 (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
|
3429 (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
|
3430 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3431 b'', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3432 ) |
36556
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3433 def debugserve(ui, repo, **opts): |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3434 """run a server with advanced settings |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3435 |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3436 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
|
3437 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
|
3438 arguments for security reasons. |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3439 """ |
50978
36f116820853
debugserve: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50977
diff
changeset
|
3440 if not opts['sshstdio']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3441 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
|
3442 |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3443 logfh = None |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3444 |
50978
36f116820853
debugserve: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50977
diff
changeset
|
3445 if opts['logiofd'] and opts['logiofile']: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3446 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
|
3447 |
50978
36f116820853
debugserve: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50977
diff
changeset
|
3448 if opts['logiofd']: |
44123
52f8b07ad2f9
debugcommands: move away from line buffered output on binary stream
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44012
diff
changeset
|
3449 # 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
|
3450 # 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
|
3451 # 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
|
3452 # 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
|
3453 try: |
50978
36f116820853
debugserve: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50977
diff
changeset
|
3454 logfh = os.fdopen(int(opts['logiofd']), 'ab', 0) |
38322
275cc461b854
debugcommands: work around logiofd being a pipe and unseekable
Augie Fackler <augie@google.com>
parents:
38275
diff
changeset
|
3455 except OSError as e: |
275cc461b854
debugcommands: work around logiofd being a pipe and unseekable
Augie Fackler <augie@google.com>
parents:
38275
diff
changeset
|
3456 if e.errno != errno.ESPIPE: |
275cc461b854
debugcommands: work around logiofd being a pipe and unseekable
Augie Fackler <augie@google.com>
parents:
38275
diff
changeset
|
3457 raise |
275cc461b854
debugcommands: work around logiofd being a pipe and unseekable
Augie Fackler <augie@google.com>
parents:
38275
diff
changeset
|
3458 # can't seek a pipe, so `ab` mode fails on py3 |
50978
36f116820853
debugserve: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50977
diff
changeset
|
3459 logfh = os.fdopen(int(opts['logiofd']), 'wb', 0) |
36f116820853
debugserve: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50977
diff
changeset
|
3460 elif opts['logiofile']: |
52400
9746e618c151
debugcommands: stop using the `pycompat.open()` shim
Matt Harbison <matt_harbison@yahoo.com>
parents:
52105
diff
changeset
|
3461 logfh = open(opts['logiofile'], 'ab', 0) |
36556
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 s = wireprotoserver.sshserver(ui, repo, logfh=logfh) |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3464 s.serve_forever() |
44dc34b8d17b
debugcommands: add debugserve command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36522
diff
changeset
|
3465 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3466 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3467 @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
|
3468 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
|
3469 """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
|
3470 |
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3471 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
|
3472 this command will most certainly results in slight corruption of the file |
51379
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3473 level histories within your repository. DO NOT USE THIS COMMAND. |
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3474 |
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3475 The command updates the p1 and p2 fields in the dirstate, without touching |
46201
b986e3342827
debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46113
diff
changeset
|
3476 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
|
3477 should be used with extreme care. For example, neither the working |
51379
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3478 directory nor the dirstate is updated, so file statuses may be incorrect |
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3479 after running this command. Use it only if you are one of the few people who |
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3480 deeply understands both conversion tools and file level histories. If you are |
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3481 reading this help, you are not one of those people (most of them sailed west |
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3482 from Mithlond anyway). |
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3483 |
39f349391898
debugsetparents: fix Marmoutian docstring
Jordi Guti?rrez Hermoso <jordigh@octave.org>
parents:
51253
diff
changeset
|
3484 So, one more 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
|
3485 |
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3486 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
|
3487 """ |
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3488 |
37146
8bac14ce5778
debugsetparents: avoid using "r1/r2" variable names for nodeids
Martin von Zweigbergk <martinvonz@google.com>
parents:
37123
diff
changeset
|
3489 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
|
3490 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
|
3491 |
5b09e9bc0902
debugcommands: move 'debugsetparents' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30972
diff
changeset
|
3492 with repo.wlock(): |
37146
8bac14ce5778
debugsetparents: avoid using "r1/r2" variable names for nodeids
Martin von Zweigbergk <martinvonz@google.com>
parents:
37123
diff
changeset
|
3493 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
|
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'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
|
3497 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
|
3498 """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
|
3499 |
ba5b062a1388
debugsidedata: small doc improvement
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43117
diff
changeset
|
3500 Use --verbose to dump the sidedata content.""" |
50979
e6ae6573b400
debugsidedata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50978
diff
changeset
|
3501 if opts.get('changelog') or opts.get('manifest') or opts.get('dir'): |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3502 if rev is not None: |
50578
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
3503 raise error.InputError( |
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
3504 _(b'cannot specify a revision with other arguments') |
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
3505 ) |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3506 file_, rev = None, file_ |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3507 elif rev is None: |
50578
003418163195
debug: slightly improve wording on the InputErrors from the previous patch
Anton Shestakov <av6@dwimlabs.net>
parents:
50577
diff
changeset
|
3508 raise error.InputError(_(b'please specify a revision')) |
50979
e6ae6573b400
debugsidedata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50978
diff
changeset
|
3509 r = cmdutil.openstorage( |
e6ae6573b400
debugsidedata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50978
diff
changeset
|
3510 repo, b'debugdata', file_, pycompat.byteskwargs(opts) |
e6ae6573b400
debugsidedata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50978
diff
changeset
|
3511 ) |
43041
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3512 r = getattr(r, '_revlog', r) |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3513 try: |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3514 sidedata = r.sidedata(r.lookup(rev)) |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3515 except KeyError: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3516 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
|
3517 if sidedata: |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3518 sidedata = list(sidedata.items()) |
559ac8411f12
sidedata: add a debugsidedata command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42930
diff
changeset
|
3519 sidedata.sort() |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3520 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
|
3521 for key, value in sidedata: |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3522 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
|
3523 if ui.verbose: |
43116
defabf63e969
debugcommands: add a few more writenoi18n()
Martin von Zweigbergk <martinvonz@google.com>
parents:
43106
diff
changeset
|
3524 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
|
3525 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3526 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3527 @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
|
3528 def debugssl(ui, repo, source=None, **opts): |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
3529 """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
|
3530 |
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
|
3531 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
|
3532 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
|
3533 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
|
3534 |
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
|
3535 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
|
3536 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
|
3537 |
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
|
3538 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
|
3539 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
|
3540 """ |
34645 | 3541 if not pycompat.iswindows: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3542 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
|
3543 _(b'certificate chain building is only possible on Windows') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3544 ) |
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
|
3545 |
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
|
3546 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
|
3547 if not repo: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3548 raise error.Abort( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3549 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3550 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
|
3551 b"server specified" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3552 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3553 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3554 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
|
3555 |
49839
aae6b10d93f2
path: pass `path` to `peer` in `hg debugssl`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49838
diff
changeset
|
3556 path = urlutil.get_unique_pull_path_obj(b'debugssl', ui, source) |
aae6b10d93f2
path: pass `path` to `peer` in `hg debugssl`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49838
diff
changeset
|
3557 url = path.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
|
3558 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3559 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
|
3560 if url.scheme in defaultport: |
88572b7e50fd
debugssl: convert port number to int (issue5757)
Yuya Nishihara <yuya@tcha.org>
parents:
34645
diff
changeset
|
3561 try: |
88572b7e50fd
debugssl: convert port number to int (issue5757)
Yuya Nishihara <yuya@tcha.org>
parents:
34645
diff
changeset
|
3562 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
|
3563 except ValueError: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3564 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
|
3565 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3566 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
|
3567 |
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
|
3568 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
|
3569 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3570 s = ssl.wrap_socket( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3571 socket.socket(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3572 ssl_version=ssl.PROTOCOL_TLS, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3573 cert_reqs=ssl.CERT_NONE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3574 ca_certs=None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3575 ) |
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
|
3576 |
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
|
3577 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
|
3578 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
|
3579 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
|
3580 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3581 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
|
3582 |
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 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
|
3584 |
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
|
3585 if not complete: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3586 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
|
3587 |
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
|
3588 if not win32.checkcertificatechain(cert): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3589 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
|
3590 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3591 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
|
3592 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3593 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
|
3594 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
|
3595 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
|
3596 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3597 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3598 @command( |
50460
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3599 b'debug::stable-tail-sort', |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3600 [ |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3601 ( |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3602 b'T', |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3603 b'template', |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3604 b'{rev}\n', |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3605 _(b'display with template'), |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3606 _(b'TEMPLATE'), |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3607 ), |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3608 ], |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3609 b'REV', |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3610 ) |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3611 def debug_stable_tail_sort(ui, repo, revspec, template, **opts): |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3612 """display the stable-tail sort of the ancestors of a given node""" |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3613 rev = logcmdutil.revsingle(repo, revspec).rev() |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3614 cl = repo.changelog |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3615 |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3616 displayer = logcmdutil.maketemplater(ui, repo, template) |
50559
1a4f54574e3d
stabletailgraph: clarify naiveness of current implementation
pacien <pacien.trangirard@pacien.net>
parents:
50543
diff
changeset
|
3617 sorted_revs = stabletailsort._stable_tail_sort_naive(cl, rev) |
50460
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3618 for ancestor_rev in sorted_revs: |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3619 displayer.show(repo[ancestor_rev]) |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3620 |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3621 |
f0d2b18f0274
stabletailgraph: implement stable-tail sort
pacien <pacien.trangirard@pacien.net>
parents:
50458
diff
changeset
|
3622 @command( |
50562
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3623 b'debug::stable-tail-sort-leaps', |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3624 [ |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3625 ( |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3626 b'T', |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3627 b'template', |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3628 b'{rev}', |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3629 _(b'display with template'), |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3630 _(b'TEMPLATE'), |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3631 ), |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3632 (b's', b'specific', False, _(b'restrict to specific leaps')), |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3633 ], |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3634 b'REV', |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3635 ) |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3636 def debug_stable_tail_sort_leaps(ui, repo, rspec, template, specific, **opts): |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3637 """display the leaps in the stable-tail sort of a node, one per line""" |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3638 rev = logcmdutil.revsingle(repo, rspec).rev() |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3639 |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3640 if specific: |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3641 get_leaps = stabletailsort._find_specific_leaps_naive |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3642 else: |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3643 get_leaps = stabletailsort._find_all_leaps_naive |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3644 |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3645 displayer = logcmdutil.maketemplater(ui, repo, template) |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3646 for source, target in get_leaps(repo.changelog, rev): |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3647 displayer.show(repo[source]) |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3648 displayer.show(repo[target]) |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3649 ui.write(b'\n') |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3650 |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3651 |
8fb3e942473a
stabletailgraph: naive version of leap computation
pacien <pacien.trangirard@pacien.net>
parents:
50559
diff
changeset
|
3652 @command( |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3653 b"debugbackupbundle", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3654 [ |
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 b"", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3657 b"recover", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3658 b"", |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3659 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
|
3660 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3661 ] |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3662 + cmdutil.logopts, |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3663 _(b"hg debugbackupbundle [--recover HASH]"), |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3664 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3665 def debugbackupbundle(ui, repo, *pats, **opts): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3666 """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
|
3667 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3668 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
|
3669 backup bundle. |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3670 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3671 --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
|
3672 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
|
3673 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3674 --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
|
3675 backup. |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3676 """ |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3677 backups = list( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3678 filter( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3679 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
|
3680 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3681 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3682 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
|
3683 |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3684 opts["bundle"] = b"" |
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3685 opts["force"] = None |
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3686 limit = logcmdutil.getlimit(pycompat.byteskwargs(opts)) |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3687 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3688 def display(other, chlist, displayer): |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3689 if opts.get("newest_first"): |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3690 chlist.reverse() |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3691 count = 0 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3692 for n in chlist: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3693 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
|
3694 break |
47055
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46961
diff
changeset
|
3695 parents = [ |
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46961
diff
changeset
|
3696 True for p in other.changelog.parents(n) if p != repo.nullid |
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46961
diff
changeset
|
3697 ] |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3698 if opts.get("no_merges") and len(parents) == 2: |
44453
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 count += 1 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3701 displayer.show(other[n]) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3702 |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3703 recovernode = opts.get("recover") |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3704 if recovernode: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3705 if scmutil.isrevsymbol(repo, recovernode): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3706 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
|
3707 return |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3708 elif backups: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3709 msg = _( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3710 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
|
3711 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
|
3712 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3713 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
|
3714 else: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3715 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
|
3716 return |
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 for backup in backups: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3719 # Much of this is copied from the hg incoming logic |
46961
d7b36a4e03de
debugbackupbundle: use `get_unique_pull_path`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46960
diff
changeset
|
3720 source = os.path.relpath(backup, encoding.getcwd()) |
49840
5177be2b4387
path: pass `path` to `peer` in `hg debugbackupbundle`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49839
diff
changeset
|
3721 path = urlutil.get_unique_pull_path_obj( |
46961
d7b36a4e03de
debugbackupbundle: use `get_unique_pull_path`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46960
diff
changeset
|
3722 b'debugbackupbundle', |
d7b36a4e03de
debugbackupbundle: use `get_unique_pull_path`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46960
diff
changeset
|
3723 ui, |
d7b36a4e03de
debugbackupbundle: use `get_unique_pull_path`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46960
diff
changeset
|
3724 source, |
d7b36a4e03de
debugbackupbundle: use `get_unique_pull_path`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46960
diff
changeset
|
3725 ) |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3726 try: |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3727 other = hg.peer(repo, pycompat.byteskwargs(opts), path) |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3728 except error.LookupError as ex: |
49840
5177be2b4387
path: pass `path` to `peer` in `hg debugbackupbundle`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49839
diff
changeset
|
3729 msg = _(b"\nwarning: unable to open bundle %s") % path.loc |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3730 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
|
3731 ui.warn(msg, hint=hint) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3732 continue |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3733 branches = (path.branch, opts.get('branch', [])) |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3734 revs, checkout = hg.addbranchrevs( |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3735 repo, other, branches, opts.get("rev") |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3736 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3737 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3738 if revs: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3739 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
|
3740 |
47444
1be9bf3669cb
debugbackupbundle: use new context manager for silencing the ui
Martin von Zweigbergk <martinvonz@google.com>
parents:
47443
diff
changeset
|
3741 with ui.silent(): |
1be9bf3669cb
debugbackupbundle: use new context manager for silencing the ui
Martin von Zweigbergk <martinvonz@google.com>
parents:
47443
diff
changeset
|
3742 try: |
1be9bf3669cb
debugbackupbundle: use new context manager for silencing the ui
Martin von Zweigbergk <martinvonz@google.com>
parents:
47443
diff
changeset
|
3743 other, chlist, cleanupfn = bundlerepo.getremotechanges( |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3744 ui, repo, other, revs, opts["bundle"], opts["force"] |
47444
1be9bf3669cb
debugbackupbundle: use new context manager for silencing the ui
Martin von Zweigbergk <martinvonz@google.com>
parents:
47443
diff
changeset
|
3745 ) |
1be9bf3669cb
debugbackupbundle: use new context manager for silencing the ui
Martin von Zweigbergk <martinvonz@google.com>
parents:
47443
diff
changeset
|
3746 except error.LookupError: |
1be9bf3669cb
debugbackupbundle: use new context manager for silencing the ui
Martin von Zweigbergk <martinvonz@google.com>
parents:
47443
diff
changeset
|
3747 continue |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3748 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3749 try: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3750 if not chlist: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3751 continue |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3752 if recovernode: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3753 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
|
3754 if scmutil.isrevsymbol(other, recovernode): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3755 ui.status(_(b"Unbundling %s\n") % (recovernode)) |
49840
5177be2b4387
path: pass `path` to `peer` in `hg debugbackupbundle`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49839
diff
changeset
|
3756 f = hg.openpath(ui, path.loc) |
5177be2b4387
path: pass `path` to `peer` in `hg debugbackupbundle`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49839
diff
changeset
|
3757 gen = exchange.readbundle(ui, f, path.loc) |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3758 if isinstance(gen, bundle2.unbundle20): |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3759 bundle2.applybundle( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3760 repo, |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3761 gen, |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3762 tr, |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3763 source=b"unbundle", |
49840
5177be2b4387
path: pass `path` to `peer` in `hg debugbackupbundle`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49839
diff
changeset
|
3764 url=b"bundle:" + path.loc, |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3765 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3766 else: |
49840
5177be2b4387
path: pass `path` to `peer` in `hg debugbackupbundle`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49839
diff
changeset
|
3767 gen.apply(repo, b"unbundle", b"bundle:" + path.loc) |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3768 break |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3769 else: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3770 backupdate = encoding.strtolocal( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3771 time.strftime( |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3772 "%a %H:%M, %Y-%m-%d", |
49840
5177be2b4387
path: pass `path` to `peer` in `hg debugbackupbundle`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49839
diff
changeset
|
3773 time.localtime(os.path.getmtime(path.loc)), |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3774 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3775 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3776 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
|
3777 if ui.verbose: |
49840
5177be2b4387
path: pass `path` to `peer` in `hg debugbackupbundle`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49839
diff
changeset
|
3778 ui.status(b"%s%s\n" % (b"bundle:".ljust(13), path.loc)) |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3779 else: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3780 opts[ |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3781 "template" |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3782 ] = 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
|
3783 displayer = logcmdutil.changesetdisplayer( |
50980
b28f794fe10a
debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50979
diff
changeset
|
3784 ui, other, pycompat.byteskwargs(opts), False |
44453
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3785 ) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3786 display(other, chlist, displayer) |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3787 displayer.close() |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3788 finally: |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3789 cleanupfn() |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3790 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3791 |
f82d2d4e71db
debugbackupbundle: introduce command to interact with strip backups
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44427
diff
changeset
|
3792 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3793 b'debugsub', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3794 [(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
|
3795 _(b'[-r REV] [REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3796 ) |
30975
8e38fa360a12
debugcommands: move 'debugsub' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30974
diff
changeset
|
3797 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
|
3798 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
|
3799 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
|
3800 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
|
3801 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
|
3802 ui.writenoi18n(b' revision %s\n' % v[1]) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3803 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3804 |
50014
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3805 @command( |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3806 b'debugshell', |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3807 [ |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3808 ( |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3809 b'c', |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3810 b'command', |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3811 b'', |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3812 _(b'program passed in as a string'), |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3813 _(b'COMMAND'), |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3814 ) |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3815 ], |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3816 _(b'[-c COMMAND]'), |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3817 optionalrepo=True, |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3818 ) |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3819 def debugshell(ui, repo, **opts): |
46464
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3820 """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
|
3821 |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3822 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
|
3823 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
|
3824 """ |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3825 import code |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3826 |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3827 imported_objects = { |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3828 'ui': ui, |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3829 'repo': repo, |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3830 } |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3831 |
49972
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3832 # py2exe disables initialization of the site module, which is responsible |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3833 # for arranging for ``quit()`` to exit the interpreter. Manually initialize |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3834 # the stuff that site normally does here, so that the interpreter can be |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3835 # quit in a consistent manner, whether run with pyoxidizer, exewrapper.c, |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3836 # py.exe, or py2exe. |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3837 if getattr(sys, "frozen", None) == 'console_exe': |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3838 try: |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3839 import site |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3840 |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3841 site.setcopyright() |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3842 site.sethelper() |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3843 site.setquit() |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3844 except ImportError: |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3845 site = None # Keep PyCharm happy |
88b81dc2d82b
debugshell: allow TortoiseHg builds to exit with the usual `quit()` command
Matt Harbison <matt_harbison@yahoo.com>
parents:
49921
diff
changeset
|
3846 |
50014
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3847 command = opts.get('command') |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3848 if command: |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3849 compiled = code.compile_command(encoding.strfromlocal(command)) |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3850 code.InteractiveInterpreter(locals=imported_objects).runcode(compiled) |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3851 return |
8f76a41ee465
debugshell: allow commands to be specified as a CLI argument
Arun Kulshreshtha <akulshreshtha@janestreet.com>
parents:
49972
diff
changeset
|
3852 |
46464
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3853 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
|
3854 |
f25c770c217b
debugshell: add a simple command for starting an interactive shell
Joerg Sonnenberger <joerg@bec.de>
parents:
46237
diff
changeset
|
3855 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3856 @command( |
49914
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3857 b'debug-revlog-stats', |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3858 [ |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3859 (b'c', b'changelog', None, _(b'Display changelog statistics')), |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3860 (b'm', b'manifest', None, _(b'Display manifest statistics')), |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3861 (b'f', b'filelogs', None, _(b'Display filelogs statistics')), |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3862 ] |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3863 + cmdutil.formatteropts, |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3864 ) |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3865 def debug_revlog_stats(ui, repo, **opts): |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3866 """display statistics about revlogs in the store""" |
50981
f04568add4ee
debug_revlog_stats: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50980
diff
changeset
|
3867 changelog = opts["changelog"] |
f04568add4ee
debug_revlog_stats: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50980
diff
changeset
|
3868 manifest = opts["manifest"] |
f04568add4ee
debug_revlog_stats: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50980
diff
changeset
|
3869 filelogs = opts["filelogs"] |
49914
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3870 |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3871 if changelog is None and manifest is None and filelogs is None: |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3872 changelog = True |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3873 manifest = True |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3874 filelogs = True |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3875 |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3876 repo = repo.unfiltered() |
50981
f04568add4ee
debug_revlog_stats: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50980
diff
changeset
|
3877 fm = ui.formatter(b'debug-revlog-stats', pycompat.byteskwargs(opts)) |
49914
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3878 revlog_debug.debug_revlog_stats(repo, fm, changelog, manifest, filelogs) |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3879 fm.end() |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3880 |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3881 |
b1e4c74beb6f
debug: add debug-revlog-stats command
Franck Bret <franck.bret@octobus.net>
parents:
49871
diff
changeset
|
3882 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3883 b'debugsuccessorssets', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3884 [(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
|
3885 _(b'[REV]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3886 ) |
33274
68f3e819d41d
obsolete: closest divergent support
Boris Feld <boris.feld@octobus.net>
parents:
33273
diff
changeset
|
3887 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
|
3888 """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
|
3889 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3890 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
|
3891 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
|
3892 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
|
3893 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3894 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
|
3895 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
|
3896 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3897 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
|
3898 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
|
3899 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3900 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
|
3901 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
|
3902 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3903 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
|
3904 "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
|
3905 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
|
3906 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3907 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
|
3908 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3909 <rev1> |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3910 <successors-1A> |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3911 <rev2> |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3912 <successors-2A> |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3913 <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
|
3914 |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3915 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
|
3916 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
|
3917 been split). |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3918 """ |
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3919 # 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
|
3920 cache = {} |
36161
8eb13f5d5d3f
py3: convert context to bytes instead of str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35969
diff
changeset
|
3921 ctx2str = bytes |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3922 node2str = short |
48128
5ced12cfa41b
errors: raise InputError on bad revset to revrange() iff provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents:
48113
diff
changeset
|
3923 for rev in logcmdutil.revrange(repo, revs): |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3924 ctx = repo[rev] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3925 ui.write(b'%s\n' % ctx2str(ctx)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3926 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
|
3927 repo, ctx.node(), closest=opts['closest'], cache=cache |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3928 ): |
30976
db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30975
diff
changeset
|
3929 if succsset: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3930 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
|
3931 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
|
3932 for node in succsset[1:]: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3933 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
|
3934 ui.write(node2str(node)) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3935 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
|
3936 |
44349
a0ec05d93c8e
cleanup: re-run black on the codebase
Augie Fackler <augie@google.com>
parents:
44336
diff
changeset
|
3937 |
44336
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
3938 @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
|
3939 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
|
3940 """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
|
3941 cache = tagsmod.hgtagsfnodescache(repo.unfiltered()) |
46694
e4e971abb6a3
debugtagscache: verify that filenode is correct
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46692
diff
changeset
|
3942 flog = repo.file(b'.hgtags') |
44336
d8b53385b1bc
tags: add a debug command to display .hg/cache/hgtagsfnodes1
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44230
diff
changeset
|
3943 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
|
3944 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
|
3945 tagsnode = cache.getfnode(node, computemissing=False) |
46547
5aac1a1a5beb
tagcache: distinguish between invalid and missing entries
Matt Harbison <matt_harbison@yahoo.com>
parents:
46538
diff
changeset
|
3946 if tagsnode: |
5aac1a1a5beb
tagcache: distinguish between invalid and missing entries
Matt Harbison <matt_harbison@yahoo.com>
parents:
46538
diff
changeset
|
3947 tagsnodedisplay = hex(tagsnode) |
46694
e4e971abb6a3
debugtagscache: verify that filenode is correct
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46692
diff
changeset
|
3948 if not flog.hasnode(tagsnode): |
e4e971abb6a3
debugtagscache: verify that filenode is correct
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46692
diff
changeset
|
3949 tagsnodedisplay += b' (unknown node)' |
46692
9306a16ca964
debugcommands: prevent using `is False`
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46547
diff
changeset
|
3950 elif tagsnode is None: |
9306a16ca964
debugcommands: prevent using `is False`
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46547
diff
changeset
|
3951 tagsnodedisplay = b'missing' |
9306a16ca964
debugcommands: prevent using `is False`
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46547
diff
changeset
|
3952 else: |
46547
5aac1a1a5beb
tagcache: distinguish between invalid and missing entries
Matt Harbison <matt_harbison@yahoo.com>
parents:
46538
diff
changeset
|
3953 tagsnodedisplay = b'invalid' |
5aac1a1a5beb
tagcache: distinguish between invalid and missing entries
Matt Harbison <matt_harbison@yahoo.com>
parents:
46538
diff
changeset
|
3954 |
44384
e80da7a63264
tags: fix some type confusion exposed in python 3
Augie Fackler <augie@google.com>
parents:
44370
diff
changeset
|
3955 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
|
3956 |
44349
a0ec05d93c8e
cleanup: re-run black on the codebase
Augie Fackler <augie@google.com>
parents:
44336
diff
changeset
|
3957 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3958 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3959 b'debugtemplate', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3960 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3961 (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
|
3962 (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
|
3963 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3964 _(b'[-r REV]... [-D KEY=VALUE]... TEMPLATE'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3965 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3966 ) |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3967 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
|
3968 """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
|
3969 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3970 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
|
3971 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
|
3972 template. |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3973 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3974 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
|
3975 """ |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3976 revs = None |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
3977 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
|
3978 if repo is None: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
3979 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
|
3980 _(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
|
3981 ) |
48128
5ced12cfa41b
errors: raise InputError on bad revset to revrange() iff provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents:
48113
diff
changeset
|
3982 revs = logcmdutil.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
|
3983 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3984 props = {} |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
3985 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
|
3986 try: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3987 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
|
3988 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
|
3989 raise ValueError |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3990 props[k] = v |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3991 except ValueError: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3992 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
|
3993 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
3994 if ui.verbose: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3995 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
|
3996 tree = templater.parse(tmpl) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
3997 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
|
3998 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
|
3999 if newtree != tree: |
43094
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
4000 ui.notenoi18n( |
e8cf9ad52a78
formatting: run black on all file again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43089
diff
changeset
|
4001 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
|
4002 ) |
30977
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
4003 |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
4004 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
|
4005 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
|
4006 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
|
4007 if ui.verbose: |
d4fae9a0ab1f
templater: add function to look up symbols used in template
Yuya Nishihara <yuya@tcha.org>
parents:
38322
diff
changeset
|
4008 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
|
4009 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
|
4010 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
|
4011 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
|
4012 else: |
35928
c8e2d6ed1f9e
cmdutil: drop aliases for logcmdutil functions (API)
Yuya Nishihara <yuya@tcha.org>
parents:
35730
diff
changeset
|
4013 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
|
4014 if ui.verbose: |
d4fae9a0ab1f
templater: add function to look up symbols used in template
Yuya Nishihara <yuya@tcha.org>
parents:
38322
diff
changeset
|
4015 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
|
4016 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
|
4017 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
|
4018 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
|
4019 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
|
4020 displayer.close() |
14794735faa8
debugcommands: move 'debugtemplate' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30976
diff
changeset
|
4021 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4022 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4023 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4024 b'debuguigetpass', |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4025 [ |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4026 (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
|
4027 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4028 _(b'[-p TEXT]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4029 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4030 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4031 def debuguigetpass(ui, prompt=b''): |
36800
15c050b5d599
ui: add debug commands to test interactive prompt
Yuya Nishihara <yuya@tcha.org>
parents:
36789
diff
changeset
|
4032 """show prompt to type password""" |
15c050b5d599
ui: add debug commands to test interactive prompt
Yuya Nishihara <yuya@tcha.org>
parents:
36789
diff
changeset
|
4033 r = ui.getpass(prompt) |
45783
e614eeb794f9
ui: remove excessive strtolocal() from debuguigetpass
Yuya Nishihara <yuya@tcha.org>
parents:
45777
diff
changeset
|
4034 if r is None: |
45777
07b0a687c01a
ui: ensure `getpass()` returns bytes
Matt Harbison <matt_harbison@yahoo.com>
parents:
45715
diff
changeset
|
4035 r = b"<default response>" |
44662
649fd6c3ed33
debugcommands: fix typo in debuguigetpass
Yuya Nishihara <yuya@tcha.org>
parents:
44639
diff
changeset
|
4036 ui.writenoi18n(b'response: %s\n' % r) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4037 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4038 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4039 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4040 b'debuguiprompt', |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4041 [ |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4042 (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
|
4043 ], |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4044 _(b'[-p TEXT]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4045 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4046 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4047 def debuguiprompt(ui, prompt=b''): |
36800
15c050b5d599
ui: add debug commands to test interactive prompt
Yuya Nishihara <yuya@tcha.org>
parents:
36789
diff
changeset
|
4048 """show plain prompt""" |
15c050b5d599
ui: add debug commands to test interactive prompt
Yuya Nishihara <yuya@tcha.org>
parents:
36789
diff
changeset
|
4049 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
|
4050 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
|
4051 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4052 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4053 @command(b'debugupdatecaches', []) |
32305
ccef71de7d41
caches: introduce a 'debugupdatecaches' command
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32296
diff
changeset
|
4054 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
|
4055 """warm all known caches in the repository""" |
33438 | 4056 with repo.wlock(), repo.lock(): |
47309
e96f75857361
updatecaches: use the caches argument in `hg debugupdatecaches`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47153
diff
changeset
|
4057 repo.updatecaches(caches=repository.CACHES_ALL) |
32305
ccef71de7d41
caches: introduce a 'debugupdatecaches' command
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32296
diff
changeset
|
4058 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4059 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4060 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4061 b'debugupgraderepo', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4062 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4063 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4064 b'o', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4065 b'optimize', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4066 [], |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4067 _(b'extra optimization to perform'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4068 _(b'NAME'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4069 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4070 (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
|
4071 (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
|
4072 (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
|
4073 (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
|
4074 (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
|
4075 ], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4076 ) |
42840
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
4077 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
|
4078 """upgrade a repository to use different features |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
4079 |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
4080 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
|
4081 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
|
4082 |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
4083 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
|
4084 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
|
4085 by the command output when run without ``--run``. |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
4086 |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
4087 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
|
4088 allowed. |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
4089 |
eaa5607132a2
debugcommands: stub for debugupgraderepo command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30743
diff
changeset
|
4090 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
|
4091 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
|
4092 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
|
4093 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
|
4094 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
|
4095 |
47030
bd2ed1032b4e
debugcommands: fix some plural-agreements I noticed
Augie Fackler <augie@google.com>
parents:
46961
diff
changeset
|
4096 By default, all revlogs will be upgraded. You can restrict this using flags |
42840
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
4097 such as `--manifest`: |
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
4098 |
cf2b765cecd7
upgrade: add an argument to control manifest upgrade
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42789
diff
changeset
|
4099 * `--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
|
4100 * `--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
|
4101 * `--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
|
4102 * `--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
|
4103 * `--filelogs`: optimize the filelogs only |
46211
2dbe6053d49a
debugupgraderepo: minor documentation fix
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46208
diff
changeset
|
4104 * `--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
|
4105 """ |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4106 return upgrade.upgraderepo( |
46208
083438d6f403
upgrade: drop support for old style optimization names
Pulkit Goyal <7895pulkit@gmail.com>
parents:
46201
diff
changeset
|
4107 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
|
4108 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4109 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4110 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4111 @command( |
51398
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4112 b'debug::unbundle', |
51593
15e680a44502
unbundle: move most of the logic on cmdutil to help debug::unbundle reuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51398
diff
changeset
|
4113 [], |
15e680a44502
unbundle: move most of the logic on cmdutil to help debug::unbundle reuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51398
diff
changeset
|
4114 _(b'FILE...'), |
51398
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4115 helpcategory=command.CATEGORY_IMPORT_EXPORT, |
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4116 ) |
51593
15e680a44502
unbundle: move most of the logic on cmdutil to help debug::unbundle reuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51398
diff
changeset
|
4117 def debugunbundle(ui, repo, fname1, *fnames): |
51398
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4118 """same as `hg unbundle`, but pretent to come from a push |
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4119 |
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4120 This is useful to debug behavior and performance change in this case. |
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4121 """ |
51593
15e680a44502
unbundle: move most of the logic on cmdutil to help debug::unbundle reuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51398
diff
changeset
|
4122 fnames = (fname1,) + fnames |
15e680a44502
unbundle: move most of the logic on cmdutil to help debug::unbundle reuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51398
diff
changeset
|
4123 cmdutil.unbundle_files(ui, repo, fnames) |
51398
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4124 |
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4125 |
e2dfa403452d
debug: add a debug::unbundle command that simulate the unbundle from a push
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51379
diff
changeset
|
4126 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4127 b'debugwalk', cmdutil.walkopts, _(b'[OPTION]... [FILE]...'), inferrepo=True |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4128 ) |
30978
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4129 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
|
4130 """show how files match on given patterns""" |
50982
e032f47f5166
debugwalk: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50981
diff
changeset
|
4131 m = scmutil.match(repo[None], pats, pycompat.byteskwargs(opts)) |
38274
7c3a59e2971b
debugwalk: show matcher output only if -v/--verbose
Yuya Nishihara <yuya@tcha.org>
parents:
38273
diff
changeset
|
4132 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
|
4133 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
|
4134 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
|
4135 if not items: |
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4136 return |
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4137 f = lambda fn: fn |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4138 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
|
4139 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
|
4140 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
|
4141 max([len(abs) for abs in items]), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4142 max([len(repo.pathto(abs)) for abs in items]), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4143 ) |
30978
df73368c87c3
debugcommands: move 'debugwalk' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30977
diff
changeset
|
4144 for abs in items: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4145 line = fmt % ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4146 abs, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4147 f(repo.pathto(abs)), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4148 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
|
4149 ) |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4150 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
|
4151 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4152 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4153 @command(b'debugwhyunstable', [], _(b'REV')) |
36960
efc4fb344c05
debug: add debugwhyunstable that explains instabilities
Anton Shestakov <av6@dwimlabs.net>
parents:
36958
diff
changeset
|
4154 def debugwhyunstable(ui, repo, rev): |
efc4fb344c05
debug: add debugwhyunstable that explains instabilities
Anton Shestakov <av6@dwimlabs.net>
parents:
36958
diff
changeset
|
4155 """explain instabilities of a changeset""" |
37396
9966f44ecab4
debugwhyunstable: add support for revsets
Martin von Zweigbergk <martinvonz@google.com>
parents:
37350
diff
changeset
|
4156 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
|
4157 dnodes = b'' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4158 if entry.get(b'divergentnodes'): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4159 dnodes = ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4160 b' '.join( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4161 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
|
4162 for ctx in entry[b'divergentnodes'] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4163 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4164 + b' ' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4165 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4166 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4167 b'%s: %s%s %s\n' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4168 % (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
|
4169 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4170 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4171 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4172 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4173 b'debugwireargs', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4174 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4175 (b'', b'three', b'', b'three'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4176 (b'', b'four', b'', b'four'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4177 (b'', b'five', b'', b'five'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4178 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4179 + cmdutil.remoteopts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4180 _(b'REPO [OPTIONS]... [ONE [TWO]]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4181 norepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4182 ) |
30979
bd5694ce8beb
debugcommands: move 'debugwireargs' in the new module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30978
diff
changeset
|
4183 def debugwireargs(ui, repopath, *vals, **opts): |
50983
a4d21089bec7
debugwireargs: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50982
diff
changeset
|
4184 repo = hg.peer(ui, pycompat.byteskwargs(opts), repopath) |
46702
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4185 try: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4186 for opt in cmdutil.remoteopts: |
50983
a4d21089bec7
debugwireargs: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50982
diff
changeset
|
4187 del opts[pycompat.sysstr(opt[1])] |
46702
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4188 args = {} |
49004
f254fc73d956
global: bulk replace simple pycompat.iteritems(x) with x.items()
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48966
diff
changeset
|
4189 for k, v in opts.items(): |
46702
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4190 if v: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4191 args[k] = v |
50983
a4d21089bec7
debugwireargs: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50982
diff
changeset
|
4192 |
46702
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4193 # run twice to check that we don't mess up the stream for the next command |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4194 res1 = repo.debugwireargs(*vals, **args) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4195 res2 = repo.debugwireargs(*vals, **args) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4196 ui.write(b"%s\n" % res1) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4197 if res1 != res2: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4198 ui.warn(b"%s\n" % res2) |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4199 finally: |
a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
46694
diff
changeset
|
4200 repo.close() |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4201 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4202 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4203 def _parsewirelangblocks(fh): |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4204 activeaction = None |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4205 blocklines = [] |
40174
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4206 lastindent = 0 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4207 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4208 for line in fh: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4209 line = line.rstrip() |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4210 if not line: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4211 continue |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4212 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4213 if line.startswith(b'#'): |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4214 continue |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4215 |
39099
efeeb73f54c3
debugcommands: fix a missing b prefix
Augie Fackler <augie@google.com>
parents:
39010
diff
changeset
|
4216 if not line.startswith(b' '): |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4217 # New block. Flush previous one. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4218 if activeaction: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4219 yield activeaction, blocklines |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4220 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4221 activeaction = line |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4222 blocklines = [] |
40174
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4223 lastindent = 0 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4224 continue |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4225 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4226 # Else we start with an indent. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4227 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4228 if not activeaction: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4229 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
|
4230 |
40174
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4231 indent = len(line) - len(line.lstrip()) |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4232 |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4233 # 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
|
4234 if indent > lastindent and blocklines: |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4235 blocklines[-1] += line.lstrip() |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4236 else: |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4237 blocklines.append(line) |
64360202d5b2
debugcommands: support wrapping long lines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40030
diff
changeset
|
4238 lastindent = indent |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4239 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4240 # Flush last block. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4241 if activeaction: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4242 yield activeaction, blocklines |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4243 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4244 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4245 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4246 b'debugwireproto', |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4247 [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4248 (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
|
4249 (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
|
4250 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4251 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4252 b'noreadstderr', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4253 False, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4254 _(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
|
4255 ), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4256 ( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4257 b'', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4258 b'nologhandshake', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4259 False, |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4260 _(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
|
4261 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4262 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4263 + cmdutil.remoteopts, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4264 _(b'[PATH]'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4265 optionalrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4266 ) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4267 def debugwireproto(ui, repo, path=None, **opts): |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4268 """send wire protocol commands to a server |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4269 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4270 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
|
4271 peers and to debug the raw data being exchanged. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4272 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4273 ``--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
|
4274 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
|
4275 and establish an appropriate peer instance. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4276 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4277 ``--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
|
4278 peer instance using the specified class type. Valid values are ``raw``, |
48561 | 4279 ``ssh1``. ``raw`` instances only allow sending raw data payloads and |
4280 don't support higher-level command actions. | |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4281 |
36563
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4282 ``--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
|
4283 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
|
4284 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
|
4285 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4286 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
|
4287 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
|
4288 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
|
4289 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
|
4290 effectively a high-level command with additional metadata. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4291 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4292 Lines beginning with ``#`` are ignored. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4293 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4294 The following sections denote available actions. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4295 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4296 raw |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4297 --- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4298 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4299 Send raw data to the server. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4300 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4301 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
|
4302 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
|
4303 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
|
4304 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4305 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
|
4306 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
|
4307 backslash escaping, etc. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4308 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4309 raw+ |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4310 ---- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4311 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4312 Behaves like ``raw`` except flushes output afterwards. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4313 |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4314 command <X> |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4315 ----------- |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4316 |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4317 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
|
4318 string. |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4319 |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4320 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
|
4321 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
|
4322 |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4323 command listkeys |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4324 namespace bookmarks |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4325 |
37483
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4326 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
|
4327 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
|
4328 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
|
4329 backslash escaping. |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4330 |
36563
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4331 The following arguments have special meaning: |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4332 |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4333 ``PUSHFILE`` |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4334 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
|
4335 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
|
4336 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
|
4337 command payload. |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4338 |
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4339 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
|
4340 |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4341 batchbegin |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4342 ---------- |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4343 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4344 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
|
4345 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4346 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
|
4347 ``batchsubmit`` block. |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4348 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4349 batchsubmit |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4350 ----------- |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4351 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4352 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
|
4353 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4354 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
|
4355 |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4356 httprequest <method> <path> |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4357 --------------------------- |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4358 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4359 (HTTP peer only) |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4360 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4361 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
|
4362 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4363 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
|
4364 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4365 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
|
4366 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
|
4367 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4368 The following arguments are special: |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4369 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4370 ``BODYFILE`` |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4371 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
|
4372 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
|
4373 |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4374 ``frame <type> <flags> <payload>`` |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4375 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
|
4376 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4377 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
|
4378 request. |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4379 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4380 close |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4381 ----- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4382 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4383 Close the connection to the server. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4384 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4385 flush |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4386 ----- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4387 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4388 Flush data written to the server. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4389 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4390 readavailable |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4391 ------------- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4392 |
36851
31581528f242
debugwireproto: close the write end before consuming all available data
Yuya Nishihara <yuya@tcha.org>
parents:
36843
diff
changeset
|
4393 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
|
4394 the server. |
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 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
|
4397 pipes and read available data. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4398 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4399 readline |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4400 -------- |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4401 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4402 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
|
4403 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
|
4404 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4405 ereadline |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4406 --------- |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4407 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4408 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
|
4409 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4410 read <X> |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4411 -------- |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4412 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4413 ``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
|
4414 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4415 eread <X> |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4416 --------- |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4417 |
143219fc2620
debugcommands: introduce actions to perform deterministic reads
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36991
diff
changeset
|
4418 ``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
|
4419 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4420 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
|
4421 ---------------------------------------------- |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4422 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4423 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
|
4424 syntax. |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4425 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4426 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
|
4427 from a string of the form: |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4428 |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4429 <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
|
4430 |
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4431 ``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
|
4432 stream identifiers. |
37060
2ec1fb9de638
wireproto: add request IDs to frames
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37054
diff
changeset
|
4433 |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4434 ``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
|
4435 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
|
4436 ``command-name``. |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4437 |
37288
9bfcbe4f4745
wireproto: add streams to frame-based protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37285
diff
changeset
|
4438 ``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
|
4439 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
|
4440 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
|
4441 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
|
4442 |
37290
cc5a040fe150
wireproto: syntax for encoding CBOR into frames
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37288
diff
changeset
|
4443 ``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
|
4444 ``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
|
4445 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
|
4446 as a Python byte string literal. |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4447 """ |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4448 if opts['localssh'] and not repo: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4449 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
|
4450 |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4451 if opts['peer'] and opts['peer'] not in ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4452 b'raw', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4453 b'ssh1', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4454 ): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4455 raise error.Abort( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4456 _(b'invalid value for --peer'), |
48561 | 4457 hint=_(b'valid values are "raw" and "ssh1"'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4458 ) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4459 |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4460 if path and opts['localssh']: |
43117
8ff1ecfadcd1
cleanup: join string literals that are already on one line
Martin von Zweigbergk <martinvonz@google.com>
parents:
43116
diff
changeset
|
4461 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
|
4462 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4463 if ui.interactive(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4464 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
|
4465 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4466 blocks = list(_parsewirelangblocks(ui.fin)) |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4467 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4468 proc = None |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4469 stdin = None |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4470 stdout = None |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4471 stderr = None |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4472 opener = None |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4473 |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4474 if opts['localssh']: |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4475 # 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
|
4476 # 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
|
4477 # 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
|
4478 args = procutil.hgcmd() + [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4479 b'-R', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4480 repo.root, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4481 b'debugserve', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4482 b'--sshstdio', |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4483 ] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4484 proc = subprocess.Popen( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4485 pycompat.rapply(procutil.tonativestr, args), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4486 stdin=subprocess.PIPE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4487 stdout=subprocess.PIPE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4488 stderr=subprocess.PIPE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4489 bufsize=0, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4490 ) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4491 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4492 stdin = proc.stdin |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4493 stdout = proc.stdout |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4494 stderr = proc.stderr |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4495 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4496 # We turn the pipes into observers so we can log I/O. |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4497 if ui.verbose or opts['peer'] == b'raw': |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4498 stdin = util.makeloggingfileobject( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4499 ui, proc.stdin, b'i', logdata=True |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4500 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4501 stdout = util.makeloggingfileobject( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4502 ui, proc.stdout, b'o', logdata=True |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4503 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4504 stderr = util.makeloggingfileobject( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4505 ui, proc.stderr, b'e', logdata=True |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4506 ) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4507 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4508 # --localssh also implies the peer connection settings. |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4509 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4510 url = b'ssh://localserver' |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4511 autoreadstderr = not opts['noreadstderr'] |
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4512 |
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4513 if opts['peer'] == b'ssh1': |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4514 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
|
4515 peer = sshpeer.sshv1peer( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4516 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4517 url, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4518 proc, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4519 stdin, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4520 stdout, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4521 stderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4522 None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4523 autoreadstderr=autoreadstderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4524 ) |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4525 elif opts['peer'] == b'raw': |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4526 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
|
4527 peer = None |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4528 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4529 ui.write(_(b'creating ssh peer from handshake results\n')) |
50458
ed052780ad5e
peer: rename makepeer() ? _make_peer()
Manuel Jacob <me@manueljacob.de>
parents:
50317
diff
changeset
|
4530 peer = sshpeer._make_peer( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4531 ui, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4532 url, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4533 proc, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4534 stdin, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4535 stdout, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4536 stderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4537 autoreadstderr=autoreadstderr, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4538 ) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4539 |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4540 elif path: |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4541 # 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
|
4542 # 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
|
4543 # ``hg.wirepeersetupfuncs`` and potentially other useful functionality. |
46907
ffd3e823a7e5
urlutil: extract `url` related code from `util` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46819
diff
changeset
|
4544 u = urlutil.url(path) |
51870
b08de326bee4
debugwireproto: redo logging to also work for https
Joerg Sonnenberger <joerg@bec.de>
parents:
51593
diff
changeset
|
4545 if u.scheme not in (b'http', b'https'): |
b08de326bee4
debugwireproto: redo logging to also work for https
Joerg Sonnenberger <joerg@bec.de>
parents:
51593
diff
changeset
|
4546 raise error.Abort( |
b08de326bee4
debugwireproto: redo logging to also work for https
Joerg Sonnenberger <joerg@bec.de>
parents:
51593
diff
changeset
|
4547 _(b'only http:// and https:// paths are currently supported') |
b08de326bee4
debugwireproto: redo logging to also work for https
Joerg Sonnenberger <joerg@bec.de>
parents:
51593
diff
changeset
|
4548 ) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4549 |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4550 url, authinfo = u.authinfo() |
37483
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4551 openerargs = { |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4552 'useragent': b'Mercurial debugwireproto', |
37483
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4553 } |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4554 |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4555 # 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
|
4556 if ui.verbose: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4557 openerargs.update( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4558 { |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4559 'loggingfh': ui, |
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4560 'loggingname': b's', |
45957
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4561 'loggingopts': { |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4562 'logdata': True, |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4563 'logdataapis': False, |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45944
diff
changeset
|
4564 }, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4565 } |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4566 ) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4567 |
37047
d3a9036d9ae9
util: don't log low-level I/O calls for HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37016
diff
changeset
|
4568 if ui.debugflag: |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4569 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
|
4570 |
37048
a708e1e4d7a8
url: support suppressing Accept header
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37047
diff
changeset
|
4571 # 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
|
4572 # 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
|
4573 # have near complete control over what's sent on the wire. |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4574 if opts['peer'] == b'raw': |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4575 openerargs['sendaccept'] = False |
37048
a708e1e4d7a8
url: support suppressing Accept header
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37047
diff
changeset
|
4576 |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4577 opener = urlmod.opener(ui, authinfo, **openerargs) |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4578 |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4579 if opts['peer'] == b'raw': |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4580 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
|
4581 peer = None |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4582 elif opts['peer']: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4583 raise error.Abort( |
50984
fd6c748eb8a6
debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com>
parents:
50983
diff
changeset
|
4584 _(b'--peer %s not supported with HTTP peers') % opts['peer'] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4585 ) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4586 else: |
49871
cfe8d88a453e
peer: get the `path` object down to the httppeer
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49840
diff
changeset
|
4587 peer_path = urlutil.try_path(ui, path) |
50458
ed052780ad5e
peer: rename makepeer() ? _make_peer()
Manuel Jacob <me@manueljacob.de>
parents:
50317
diff
changeset
|
4588 peer = httppeer._make_peer(ui, peer_path, opener=opener) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4589 |
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4590 # We /could/ populate stdin/stdout with sock.makefile()... |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4591 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4592 raise error.Abort(_(b'unsupported connection configuration')) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4593 |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4594 batchedcommands = None |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4595 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4596 # 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
|
4597 for action, lines in blocks: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4598 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
|
4599 if not stdin: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4600 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
|
4601 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4602 # Concatenate the data together. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4603 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
|
4604 data = stringutil.unescapestr(data) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4605 stdin.write(data) |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4606 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4607 if action == b'raw+': |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4608 stdin.flush() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4609 elif action == b'flush': |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4610 if not stdin: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4611 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
|
4612 stdin.flush() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4613 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
|
4614 if not peer: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4615 raise error.Abort( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4616 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4617 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
|
4618 b'is available' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4619 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4620 ) |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4621 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4622 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
|
4623 |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4624 args = {} |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4625 for line in lines: |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4626 # 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
|
4627 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
|
4628 if len(fields) == 1: |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4629 key = fields[0] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4630 value = b'' |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4631 else: |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4632 key, value = fields |
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4633 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4634 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
|
4635 value = stringutil.evalpythonliteral(value[5:]) |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4636 else: |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4637 value = stringutil.unescapestr(value) |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4638 |
61e405fb6372
wireproto: crude support for version 2 HTTP peer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37396
diff
changeset
|
4639 args[key] = value |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4640 |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4641 if batchedcommands is not None: |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4642 batchedcommands.append((command, args)) |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4643 continue |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4644 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4645 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
|
4646 |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4647 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
|
4648 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
|
4649 del args[b'PUSHFILE'] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4650 res, output = peer._callpush( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4651 command, fh, **pycompat.strkwargs(args) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4652 ) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4653 ui.status(_(b'result: %s\n') % stringutil.escapestr(res)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4654 ui.status( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4655 _(b'remote output: %s\n') % stringutil.escapestr(output) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4656 ) |
36563
5faeabb07cf5
debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36560
diff
changeset
|
4657 else: |
37652
fe8c6f9f2914
debugcommands: use command executor for invoking commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37647
diff
changeset
|
4658 with peer.commandexecutor() as e: |
fe8c6f9f2914
debugcommands: use command executor for invoking commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37647
diff
changeset
|
4659 res = e.callcommand(command, args).result() |
fe8c6f9f2914
debugcommands: use command executor for invoking commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37647
diff
changeset
|
4660 |
48561 | 4661 ui.status( |
4662 _(b'response: %s\n') | |
4663 % stringutil.pprint(res, bprefix=True, indent=2) | |
4664 ) | |
36559
bde0bd50f368
debugcommands: allow sending of simple commands with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36557
diff
changeset
|
4665 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4666 elif action == b'batchbegin': |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4667 if batchedcommands is not None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4668 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
|
4669 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4670 batchedcommands = [] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4671 elif action == b'batchsubmit': |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4672 # 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
|
4673 # 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
|
4674 # to bypass this layer and normalize to commands + args. |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4675 ui.status( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4676 _(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
|
4677 % len(batchedcommands) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4678 ) |
43744
23ad4f0c1578
debugcommands: add assertions to convince pytype peer is not None
Augie Fackler <augie@google.com>
parents:
43743
diff
changeset
|
4679 assert peer is not None |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4680 for i, chunk in enumerate(peer._submitbatch(batchedcommands)): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4681 ui.status( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4682 _(b'response #%d: %s\n') % (i, stringutil.escapestr(chunk)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4683 ) |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4684 |
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4685 batchedcommands = None |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4686 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4687 elif action.startswith(b'httprequest '): |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4688 if not opener: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4689 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
|
4690 _(b'cannot use httprequest without an HTTP peer') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4691 ) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4692 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4693 request = action.split(b' ', 2) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4694 if len(request) != 3: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4695 raise error.Abort( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4696 _( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4697 b'invalid httprequest: expected format is ' |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4698 b'"httprequest <method> <path>' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4699 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4700 ) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4701 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4702 method, httppath = request[1:] |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4703 headers = {} |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4704 body = None |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4705 frames = [] |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4706 for line in lines: |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4707 line = line.lstrip() |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4708 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
|
4709 if m: |
39956
c421c22d3ad2
py3: convert HTTP request headers to str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39889
diff
changeset
|
4710 # Headers need to use native strings. |
c421c22d3ad2
py3: convert HTTP request headers to str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39889
diff
changeset
|
4711 key = pycompat.strurl(m.group(1)) |
c421c22d3ad2
py3: convert HTTP request headers to str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39889
diff
changeset
|
4712 value = pycompat.strurl(m.group(2)) |
c421c22d3ad2
py3: convert HTTP request headers to str
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39889
diff
changeset
|
4713 headers[key] = value |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4714 continue |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4715 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4716 if line.startswith(b'BODYFILE '): |
52600
cac851655570
debugwireproto: replace a trivial file read with the `util` function
Matt Harbison <matt_harbison@yahoo.com>
parents:
52486
diff
changeset
|
4717 body = util.readfile(line.split(b' ', 1)) |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4718 elif line.startswith(b'frame '): |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4719 frame = wireprotoframing.makeframefromhumanstring( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4720 line[len(b'frame ') :] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4721 ) |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4722 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4723 frames.append(frame) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4724 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4725 raise error.Abort( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4726 _(b'unknown argument to httprequest: %s') % line |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4727 ) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4728 |
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4729 url = path + httppath |
37054
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4730 |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4731 if frames: |
40206e227412
wireproto: define and implement protocol for issuing requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37050
diff
changeset
|
4732 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
|
4733 |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4734 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
|
4735 |
37050
fddcb51b5084
wireproto: define permissions-based routing of HTTPv2 wire protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37048
diff
changeset
|
4736 # 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
|
4737 # 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
|
4738 # explicitly requested method. |
39101
a2fa7247ca70
debugcommands: get_method should always return a sysstr
Augie Fackler <augie@google.com>
parents:
39099
diff
changeset
|
4739 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
|
4740 |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4741 try: |
37557
734515aca84d
wireproto: define and implement HTTP handshake to upgrade protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37553
diff
changeset
|
4742 res = opener.open(req) |
734515aca84d
wireproto: define and implement HTTP handshake to upgrade protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37553
diff
changeset
|
4743 body = res.read() |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4744 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
|
4745 # 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
|
4746 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
|
4747 continue |
734515aca84d
wireproto: define and implement HTTP handshake to upgrade protocol
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37553
diff
changeset
|
4748 |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43551
diff
changeset
|
4749 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
|
4750 if ct == 'application/mercurial-cbor': |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4751 ui.write( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4752 _(b'cbor> %s\n') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4753 % stringutil.pprint( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4754 cborutil.decodeall(body), bprefix=True, indent=2 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4755 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43067
diff
changeset
|
4756 ) |
37016
b6a7070e7663
debugcommands: support sending HTTP requests with debugwireproto
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37015
diff
changeset
|
4757 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4758 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
|
4759 assert peer is not None |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4760 peer.close() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4761 elif action == b'readavailable': |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4762 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
|
4763 raise error.Abort( |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4764 _(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
|
4765 ) |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4766 |
36851
31581528f242
debugwireproto: close the write end before consuming all available data
Yuya Nishihara <yuya@tcha.org>
parents:
36843
diff
changeset
|
4767 stdin.close() |
31581528f242
debugwireproto: close the write end before consuming all available data
Yuya Nishihara <yuya@tcha.org>
parents:
36843
diff
changeset
|
4768 stdout.read() |
31581528f242
debugwireproto: close the write end before consuming all available data
Yuya Nishihara <yuya@tcha.org>
parents:
36843
diff
changeset
|
4769 stderr.read() |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4770 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4771 elif action == b'readline': |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4772 if not stdout: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4773 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
|
4774 stdout.readline() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4775 elif action == b'ereadline': |
37015
fc8939825632
debugcommands: support connecting to HTTP peers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37010
diff
changeset
|
4776 if not stderr: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4777 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
|
4778 stderr.readline() |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4779 elif action.startswith(b'read '): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4780 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
|
4781 if not stdout: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4782 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
|
4783 stdout.read(count) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4784 elif action.startswith(b'eread '): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4785 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
|
4786 if not stderr: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4787 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
|
4788 stderr.read(count) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4789 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4790 raise error.Abort(_(b'unknown action: %s') % action) |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4791 |
36560
097ad1079192
debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36559
diff
changeset
|
4792 if batchedcommands is not None: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
4793 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
|
4794 |
36557
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4795 if peer: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4796 peer.close() |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4797 |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4798 if proc: |
72e487851a53
debugcommands: add debugwireproto command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36556
diff
changeset
|
4799 proc.kill() |