Mercurial > public > mercurial-scm > hg-stable
annotate mercurial/revlogutils/debug.py @ 49775:bd3b6f363fb9
debug-revlog: move the code in revlogutils module
We have a module dedicated to debug code, let us use it.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 07 Nov 2022 14:24:52 -0500 |
parents | 7c0a383849a8 |
children | 511106bcb16c |
rev | line source |
---|---|
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
1 # revlogutils/debug.py - utility used for revlog debuging |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
2 # |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
3 # Copyright 2005-2007 Olivia Mackall <olivia@selenic.com> |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
4 # Copyright 2022 Octobus <contact@octobus.net> |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
5 # |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
6 # This software may be used and distributed according to the terms of the |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
7 # GNU General Public License version 2 or any later version. |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
8 |
49775
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
9 import collections |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
10 import string |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
11 |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
12 from .. import ( |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
13 node as nodemod, |
49775
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
14 util, |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
15 ) |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
16 |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
17 from . import ( |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
18 constants, |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
19 ) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
20 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
21 INDEX_ENTRY_DEBUG_COLUMN = [] |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
22 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
23 NODE_SIZE = object() |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
24 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
25 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
26 class _column_base: |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
27 """constains the definition of a revlog column |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
28 |
49269
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
29 name: the column header, |
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
30 value_func: the function called to get a value, |
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
31 size: the width of the column, |
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
32 verbose_only: only include the column in verbose mode. |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
33 """ |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
34 |
49269
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
35 def __init__(self, name, value_func, size=None, verbose=False): |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
36 self.name = name |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
37 self.value_func = value_func |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
38 if size is not NODE_SIZE: |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
39 if size is None: |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
40 size = 8 # arbitrary default |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
41 size = max(len(name), size) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
42 self._size = size |
49269
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
43 self.verbose_only = verbose |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
44 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
45 def get_size(self, node_size): |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
46 if self._size is NODE_SIZE: |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
47 return node_size |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
48 else: |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
49 return self._size |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
50 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
51 |
49269
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
52 def debug_column(name, size=None, verbose=False): |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
53 """decorated function is registered as a column |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
54 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
55 name: the name of the column, |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
56 size: the expected size of the column. |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
57 """ |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
58 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
59 def register(func): |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
60 entry = _column_base( |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
61 name=name, |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
62 value_func=func, |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
63 size=size, |
49269
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
64 verbose=verbose, |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
65 ) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
66 INDEX_ENTRY_DEBUG_COLUMN.append(entry) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
67 return entry |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
68 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
69 return register |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
70 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
71 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
72 @debug_column(b"rev", size=6) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
73 def _rev(index, rev, entry, hexfn): |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
74 return b"%d" % rev |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
75 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
76 |
49281
da3e37ecacde
debugindex: add a `rank` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49280
diff
changeset
|
77 @debug_column(b"rank", size=6, verbose=True) |
da3e37ecacde
debugindex: add a `rank` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49280
diff
changeset
|
78 def rank(index, rev, entry, hexfn): |
da3e37ecacde
debugindex: add a `rank` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49280
diff
changeset
|
79 return b"%d" % entry[constants.ENTRY_RANK] |
da3e37ecacde
debugindex: add a `rank` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49280
diff
changeset
|
80 |
da3e37ecacde
debugindex: add a `rank` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49280
diff
changeset
|
81 |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
82 @debug_column(b"linkrev", size=6) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
83 def _linkrev(index, rev, entry, hexfn): |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
84 return b"%d" % entry[constants.ENTRY_LINK_REV] |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
85 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
86 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
87 @debug_column(b"nodeid", size=NODE_SIZE) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
88 def _nodeid(index, rev, entry, hexfn): |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
89 return hexfn(entry[constants.ENTRY_NODE_ID]) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
90 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
91 |
49270
251650844331
debugindex: add a `p1-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49269
diff
changeset
|
92 @debug_column(b"p1-rev", size=6, verbose=True) |
251650844331
debugindex: add a `p1-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49269
diff
changeset
|
93 def _p1_rev(index, rev, entry, hexfn): |
251650844331
debugindex: add a `p1-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49269
diff
changeset
|
94 return b"%d" % entry[constants.ENTRY_PARENT_1] |
251650844331
debugindex: add a `p1-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49269
diff
changeset
|
95 |
251650844331
debugindex: add a `p1-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49269
diff
changeset
|
96 |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
97 @debug_column(b"p1-nodeid", size=NODE_SIZE) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
98 def _p1_node(index, rev, entry, hexfn): |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
99 parent = entry[constants.ENTRY_PARENT_1] |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
100 p_entry = index[parent] |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
101 return hexfn(p_entry[constants.ENTRY_NODE_ID]) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
102 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
103 |
49271
d910ca4e995b
debugindex: add a `p2-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49270
diff
changeset
|
104 @debug_column(b"p2-rev", size=6, verbose=True) |
d910ca4e995b
debugindex: add a `p2-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49270
diff
changeset
|
105 def _p2_rev(index, rev, entry, hexfn): |
d910ca4e995b
debugindex: add a `p2-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49270
diff
changeset
|
106 return b"%d" % entry[constants.ENTRY_PARENT_2] |
d910ca4e995b
debugindex: add a `p2-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49270
diff
changeset
|
107 |
d910ca4e995b
debugindex: add a `p2-rev` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49270
diff
changeset
|
108 |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
109 @debug_column(b"p2-nodeid", size=NODE_SIZE) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
110 def _p2_node(index, rev, entry, hexfn): |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
111 parent = entry[constants.ENTRY_PARENT_2] |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
112 p_entry = index[parent] |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
113 return hexfn(p_entry[constants.ENTRY_NODE_ID]) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
114 |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
115 |
49272
b0238fc496af
debugindex: add a `full-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49271
diff
changeset
|
116 @debug_column(b"full-size", size=20, verbose=True) |
b0238fc496af
debugindex: add a `full-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49271
diff
changeset
|
117 def full_size(index, rev, entry, hexfn): |
b0238fc496af
debugindex: add a `full-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49271
diff
changeset
|
118 return b"%d" % entry[constants.ENTRY_DATA_UNCOMPRESSED_LENGTH] |
b0238fc496af
debugindex: add a `full-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49271
diff
changeset
|
119 |
b0238fc496af
debugindex: add a `full-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49271
diff
changeset
|
120 |
49273
f6ef18be36e1
debugindex: add a `delta-base` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49272
diff
changeset
|
121 @debug_column(b"delta-base", size=6, verbose=True) |
f6ef18be36e1
debugindex: add a `delta-base` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49272
diff
changeset
|
122 def delta_base(index, rev, entry, hexfn): |
f6ef18be36e1
debugindex: add a `delta-base` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49272
diff
changeset
|
123 return b"%d" % entry[constants.ENTRY_DELTA_BASE] |
f6ef18be36e1
debugindex: add a `delta-base` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49272
diff
changeset
|
124 |
f6ef18be36e1
debugindex: add a `delta-base` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49272
diff
changeset
|
125 |
49274
fbb2477298a6
debugindex: add a `flags` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49273
diff
changeset
|
126 @debug_column(b"flags", size=2, verbose=True) |
fbb2477298a6
debugindex: add a `flags` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49273
diff
changeset
|
127 def flags(index, rev, entry, hexfn): |
fbb2477298a6
debugindex: add a `flags` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49273
diff
changeset
|
128 field = entry[constants.ENTRY_DATA_OFFSET] |
fbb2477298a6
debugindex: add a `flags` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49273
diff
changeset
|
129 field &= 0xFFFF |
fbb2477298a6
debugindex: add a `flags` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49273
diff
changeset
|
130 return b"%d" % field |
fbb2477298a6
debugindex: add a `flags` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49273
diff
changeset
|
131 |
fbb2477298a6
debugindex: add a `flags` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49273
diff
changeset
|
132 |
49275
7a18f6fc7e0c
debugindex: add a `comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49274
diff
changeset
|
133 @debug_column(b"comp-mode", size=4, verbose=True) |
7a18f6fc7e0c
debugindex: add a `comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49274
diff
changeset
|
134 def compression_mode(index, rev, entry, hexfn): |
7a18f6fc7e0c
debugindex: add a `comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49274
diff
changeset
|
135 return b"%d" % entry[constants.ENTRY_DATA_COMPRESSION_MODE] |
7a18f6fc7e0c
debugindex: add a `comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49274
diff
changeset
|
136 |
7a18f6fc7e0c
debugindex: add a `comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49274
diff
changeset
|
137 |
49276
7ba8adced391
debugindex: add a `data-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49275
diff
changeset
|
138 @debug_column(b"data-offset", size=20, verbose=True) |
7ba8adced391
debugindex: add a `data-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49275
diff
changeset
|
139 def data_offset(index, rev, entry, hexfn): |
7ba8adced391
debugindex: add a `data-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49275
diff
changeset
|
140 field = entry[constants.ENTRY_DATA_OFFSET] |
7ba8adced391
debugindex: add a `data-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49275
diff
changeset
|
141 field >>= 16 |
7ba8adced391
debugindex: add a `data-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49275
diff
changeset
|
142 return b"%d" % field |
7ba8adced391
debugindex: add a `data-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49275
diff
changeset
|
143 |
7ba8adced391
debugindex: add a `data-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49275
diff
changeset
|
144 |
49277
4c145006b24a
debugindex: add a `chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49276
diff
changeset
|
145 @debug_column(b"chunk-size", size=10, verbose=True) |
4c145006b24a
debugindex: add a `chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49276
diff
changeset
|
146 def data_chunk_size(index, rev, entry, hexfn): |
4c145006b24a
debugindex: add a `chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49276
diff
changeset
|
147 return b"%d" % entry[constants.ENTRY_DATA_COMPRESSED_LENGTH] |
4c145006b24a
debugindex: add a `chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49276
diff
changeset
|
148 |
4c145006b24a
debugindex: add a `chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49276
diff
changeset
|
149 |
49278
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
150 @debug_column(b"sd-comp-mode", size=7, verbose=True) |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
151 def sidedata_compression_mode(index, rev, entry, hexfn): |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
152 compression = entry[constants.ENTRY_SIDEDATA_COMPRESSION_MODE] |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
153 if compression == constants.COMP_MODE_PLAIN: |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
154 return b"plain" |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
155 elif compression == constants.COMP_MODE_DEFAULT: |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
156 return b"default" |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
157 elif compression == constants.COMP_MODE_INLINE: |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
158 return b"inline" |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
159 else: |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
160 return b"%d" % compression |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
161 |
27583efef74d
debugindex: add a `sd-comp-mode` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49277
diff
changeset
|
162 |
49279
e3a267a93711
debugindex: add a `sidedata-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49278
diff
changeset
|
163 @debug_column(b"sidedata-offset", size=20, verbose=True) |
e3a267a93711
debugindex: add a `sidedata-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49278
diff
changeset
|
164 def sidedata_offset(index, rev, entry, hexfn): |
e3a267a93711
debugindex: add a `sidedata-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49278
diff
changeset
|
165 return b"%d" % entry[constants.ENTRY_SIDEDATA_OFFSET] |
e3a267a93711
debugindex: add a `sidedata-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49278
diff
changeset
|
166 |
e3a267a93711
debugindex: add a `sidedata-offset` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49278
diff
changeset
|
167 |
49280
30d2beab8163
debugindex: add a `sd-chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49279
diff
changeset
|
168 @debug_column(b"sd-chunk-size", size=10, verbose=True) |
30d2beab8163
debugindex: add a `sd-chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49279
diff
changeset
|
169 def sidedata_chunk_size(index, rev, entry, hexfn): |
30d2beab8163
debugindex: add a `sd-chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49279
diff
changeset
|
170 return b"%d" % entry[constants.ENTRY_SIDEDATA_COMPRESSED_LENGTH] |
30d2beab8163
debugindex: add a `sd-chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49279
diff
changeset
|
171 |
30d2beab8163
debugindex: add a `sd-chunk-size` column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49279
diff
changeset
|
172 |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
173 def debug_index( |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
174 ui, |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
175 repo, |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
176 formatter, |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
177 revlog, |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
178 full_node, |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
179 ): |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
180 """display index data for a revlog""" |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
181 if full_node: |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
182 hexfn = nodemod.hex |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
183 else: |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
184 hexfn = nodemod.short |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
185 |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
186 idlen = 12 |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
187 for i in revlog: |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
188 idlen = len(hexfn(revlog.node(i))) |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
189 break |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
190 |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
191 fm = formatter |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
192 |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
193 header_pieces = [] |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
194 for column in INDEX_ENTRY_DEBUG_COLUMN: |
49269
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
195 if column.verbose_only and not ui.verbose: |
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
196 continue |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
197 size = column.get_size(idlen) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
198 name = column.name |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
199 header_pieces.append(name.rjust(size)) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
200 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
201 fm.plain(b' '.join(header_pieces) + b'\n') |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
202 |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
203 index = revlog.index |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
204 |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
205 for rev in revlog: |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
206 fm.startitem() |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
207 entry = index[rev] |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
208 first = True |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
209 for column in INDEX_ENTRY_DEBUG_COLUMN: |
49269
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
210 if column.verbose_only and not ui.verbose: |
69983adfed06
debugindex: introduce a concept of "verbose-only" column
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents:
49268
diff
changeset
|
211 continue |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
212 if not first: |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
213 fm.plain(b' ') |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
214 first = False |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
215 |
49268
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
216 size = column.get_size(idlen) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
217 value = column.value_func(index, rev, entry, hexfn) |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
218 display = b"%%%ds" % size |
a321304269cf
debugindex: move to a flexible column
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49267
diff
changeset
|
219 fm.write(column.name, display, value) |
49265
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
220 fm.plain(b'\n') |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
221 |
61cf3d39fd9e
debugindex: move the logic into its own module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
222 fm.end() |
49774
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
223 |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
224 |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
225 def dump(ui, revlog): |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
226 """perform the work for `hg debugrevlog --dump""" |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
227 # XXX seems redundant with debug index ? |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
228 r = revlog |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
229 numrevs = len(r) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
230 ui.write( |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
231 ( |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
232 b"# rev p1rev p2rev start end deltastart base p1 p2" |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
233 b" rawsize totalsize compression heads chainlen\n" |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
234 ) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
235 ) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
236 ts = 0 |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
237 heads = set() |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
238 |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
239 for rev in range(numrevs): |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
240 dbase = r.deltaparent(rev) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
241 if dbase == -1: |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
242 dbase = rev |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
243 cbase = r.chainbase(rev) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
244 clen = r.chainlen(rev) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
245 p1, p2 = r.parentrevs(rev) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
246 rs = r.rawsize(rev) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
247 ts = ts + rs |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
248 heads -= set(r.parentrevs(rev)) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
249 heads.add(rev) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
250 try: |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
251 compression = ts / r.end(rev) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
252 except ZeroDivisionError: |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
253 compression = 0 |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
254 ui.write( |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
255 b"%5d %5d %5d %5d %5d %10d %4d %4d %4d %7d %9d " |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
256 b"%11d %5d %8d\n" |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
257 % ( |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
258 rev, |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
259 p1, |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
260 p2, |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
261 r.start(rev), |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
262 r.end(rev), |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
263 r.start(dbase), |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
264 r.start(cbase), |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
265 r.start(p1), |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
266 r.start(p2), |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
267 rs, |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
268 ts, |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
269 compression, |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
270 len(heads), |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
271 clen, |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
272 ) |
7c0a383849a8
debug-revlog: move the --dump code in `revlogutils` module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49281
diff
changeset
|
273 ) |
49775
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
274 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
275 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
276 def debug_revlog(ui, revlog): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
277 """code for `hg debugrevlog`""" |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
278 r = revlog |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
279 format = r._format_version |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
280 v = r._format_flags |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
281 flags = [] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
282 gdelta = False |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
283 if v & constants.FLAG_INLINE_DATA: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
284 flags.append(b'inline') |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
285 if v & constants.FLAG_GENERALDELTA: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
286 gdelta = True |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
287 flags.append(b'generaldelta') |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
288 if not flags: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
289 flags = [b'(none)'] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
290 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
291 ### tracks merge vs single parent |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
292 nummerges = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
293 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
294 ### tracks ways the "delta" are build |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
295 # nodelta |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
296 numempty = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
297 numemptytext = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
298 numemptydelta = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
299 # full file content |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
300 numfull = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
301 # intermediate snapshot against a prior snapshot |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
302 numsemi = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
303 # snapshot count per depth |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
304 numsnapdepth = collections.defaultdict(lambda: 0) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
305 # delta against previous revision |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
306 numprev = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
307 # delta against first or second parent (not prev) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
308 nump1 = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
309 nump2 = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
310 # delta against neither prev nor parents |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
311 numother = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
312 # delta against prev that are also first or second parent |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
313 # (details of `numprev`) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
314 nump1prev = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
315 nump2prev = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
316 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
317 # data about delta chain of each revs |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
318 chainlengths = [] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
319 chainbases = [] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
320 chainspans = [] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
321 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
322 # data about each revision |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
323 datasize = [None, 0, 0] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
324 fullsize = [None, 0, 0] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
325 semisize = [None, 0, 0] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
326 # snapshot count per depth |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
327 snapsizedepth = collections.defaultdict(lambda: [None, 0, 0]) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
328 deltasize = [None, 0, 0] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
329 chunktypecounts = {} |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
330 chunktypesizes = {} |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
331 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
332 def addsize(size, l): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
333 if l[0] is None or size < l[0]: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
334 l[0] = size |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
335 if size > l[1]: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
336 l[1] = size |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
337 l[2] += size |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
338 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
339 numrevs = len(r) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
340 for rev in range(numrevs): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
341 p1, p2 = r.parentrevs(rev) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
342 delta = r.deltaparent(rev) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
343 if format > 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
344 addsize(r.rawsize(rev), datasize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
345 if p2 != nodemod.nullrev: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
346 nummerges += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
347 size = r.length(rev) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
348 if delta == nodemod.nullrev: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
349 chainlengths.append(0) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
350 chainbases.append(r.start(rev)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
351 chainspans.append(size) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
352 if size == 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
353 numempty += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
354 numemptytext += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
355 else: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
356 numfull += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
357 numsnapdepth[0] += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
358 addsize(size, fullsize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
359 addsize(size, snapsizedepth[0]) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
360 else: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
361 chainlengths.append(chainlengths[delta] + 1) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
362 baseaddr = chainbases[delta] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
363 revaddr = r.start(rev) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
364 chainbases.append(baseaddr) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
365 chainspans.append((revaddr - baseaddr) + size) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
366 if size == 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
367 numempty += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
368 numemptydelta += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
369 elif r.issnapshot(rev): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
370 addsize(size, semisize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
371 numsemi += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
372 depth = r.snapshotdepth(rev) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
373 numsnapdepth[depth] += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
374 addsize(size, snapsizedepth[depth]) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
375 else: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
376 addsize(size, deltasize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
377 if delta == rev - 1: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
378 numprev += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
379 if delta == p1: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
380 nump1prev += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
381 elif delta == p2: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
382 nump2prev += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
383 elif delta == p1: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
384 nump1 += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
385 elif delta == p2: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
386 nump2 += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
387 elif delta != nodemod.nullrev: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
388 numother += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
389 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
390 # Obtain data on the raw chunks in the revlog. |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
391 if util.safehasattr(r, '_getsegmentforrevs'): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
392 segment = r._getsegmentforrevs(rev, rev)[1] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
393 else: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
394 segment = r._revlog._getsegmentforrevs(rev, rev)[1] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
395 if segment: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
396 chunktype = bytes(segment[0:1]) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
397 else: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
398 chunktype = b'empty' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
399 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
400 if chunktype not in chunktypecounts: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
401 chunktypecounts[chunktype] = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
402 chunktypesizes[chunktype] = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
403 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
404 chunktypecounts[chunktype] += 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
405 chunktypesizes[chunktype] += size |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
406 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
407 # Adjust size min value for empty cases |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
408 for size in (datasize, fullsize, semisize, deltasize): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
409 if size[0] is None: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
410 size[0] = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
411 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
412 numdeltas = numrevs - numfull - numempty - numsemi |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
413 numoprev = numprev - nump1prev - nump2prev |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
414 totalrawsize = datasize[2] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
415 datasize[2] /= numrevs |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
416 fulltotal = fullsize[2] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
417 if numfull == 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
418 fullsize[2] = 0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
419 else: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
420 fullsize[2] /= numfull |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
421 semitotal = semisize[2] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
422 snaptotal = {} |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
423 if numsemi > 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
424 semisize[2] /= numsemi |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
425 for depth in snapsizedepth: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
426 snaptotal[depth] = snapsizedepth[depth][2] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
427 snapsizedepth[depth][2] /= numsnapdepth[depth] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
428 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
429 deltatotal = deltasize[2] |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
430 if numdeltas > 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
431 deltasize[2] /= numdeltas |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
432 totalsize = fulltotal + semitotal + deltatotal |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
433 avgchainlen = sum(chainlengths) / numrevs |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
434 maxchainlen = max(chainlengths) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
435 maxchainspan = max(chainspans) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
436 compratio = 1 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
437 if totalsize: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
438 compratio = totalrawsize / totalsize |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
439 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
440 basedfmtstr = b'%%%dd\n' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
441 basepcfmtstr = b'%%%dd %s(%%5.2f%%%%)\n' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
442 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
443 def dfmtstr(max): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
444 return basedfmtstr % len(str(max)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
445 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
446 def pcfmtstr(max, padding=0): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
447 return basepcfmtstr % (len(str(max)), b' ' * padding) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
448 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
449 def pcfmt(value, total): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
450 if total: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
451 return (value, 100 * float(value) / total) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
452 else: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
453 return value, 100.0 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
454 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
455 ui.writenoi18n(b'format : %d\n' % format) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
456 ui.writenoi18n(b'flags : %s\n' % b', '.join(flags)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
457 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
458 ui.write(b'\n') |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
459 fmt = pcfmtstr(totalsize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
460 fmt2 = dfmtstr(totalsize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
461 ui.writenoi18n(b'revisions : ' + fmt2 % numrevs) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
462 ui.writenoi18n(b' merges : ' + fmt % pcfmt(nummerges, numrevs)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
463 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
464 b' normal : ' + fmt % pcfmt(numrevs - nummerges, numrevs) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
465 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
466 ui.writenoi18n(b'revisions : ' + fmt2 % numrevs) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
467 ui.writenoi18n(b' empty : ' + fmt % pcfmt(numempty, numrevs)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
468 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
469 b' text : ' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
470 + fmt % pcfmt(numemptytext, numemptytext + numemptydelta) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
471 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
472 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
473 b' delta : ' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
474 + fmt % pcfmt(numemptydelta, numemptytext + numemptydelta) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
475 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
476 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
477 b' snapshot : ' + fmt % pcfmt(numfull + numsemi, numrevs) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
478 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
479 for depth in sorted(numsnapdepth): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
480 ui.write( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
481 (b' lvl-%-3d : ' % depth) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
482 + fmt % pcfmt(numsnapdepth[depth], numrevs) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
483 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
484 ui.writenoi18n(b' deltas : ' + fmt % pcfmt(numdeltas, numrevs)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
485 ui.writenoi18n(b'revision size : ' + fmt2 % totalsize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
486 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
487 b' snapshot : ' + fmt % pcfmt(fulltotal + semitotal, totalsize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
488 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
489 for depth in sorted(numsnapdepth): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
490 ui.write( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
491 (b' lvl-%-3d : ' % depth) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
492 + fmt % pcfmt(snaptotal[depth], totalsize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
493 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
494 ui.writenoi18n(b' deltas : ' + fmt % pcfmt(deltatotal, totalsize)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
495 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
496 letters = string.ascii_letters.encode('ascii') |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
497 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
498 def fmtchunktype(chunktype): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
499 if chunktype == b'empty': |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
500 return b' %s : ' % chunktype |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
501 elif chunktype in letters: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
502 return b' 0x%s (%s) : ' % (nodemod.hex(chunktype), chunktype) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
503 else: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
504 return b' 0x%s : ' % nodemod.hex(chunktype) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
505 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
506 ui.write(b'\n') |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
507 ui.writenoi18n(b'chunks : ' + fmt2 % numrevs) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
508 for chunktype in sorted(chunktypecounts): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
509 ui.write(fmtchunktype(chunktype)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
510 ui.write(fmt % pcfmt(chunktypecounts[chunktype], numrevs)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
511 ui.writenoi18n(b'chunks size : ' + fmt2 % totalsize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
512 for chunktype in sorted(chunktypecounts): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
513 ui.write(fmtchunktype(chunktype)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
514 ui.write(fmt % pcfmt(chunktypesizes[chunktype], totalsize)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
515 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
516 ui.write(b'\n') |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
517 fmt = dfmtstr(max(avgchainlen, maxchainlen, maxchainspan, compratio)) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
518 ui.writenoi18n(b'avg chain length : ' + fmt % avgchainlen) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
519 ui.writenoi18n(b'max chain length : ' + fmt % maxchainlen) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
520 ui.writenoi18n(b'max chain reach : ' + fmt % maxchainspan) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
521 ui.writenoi18n(b'compression ratio : ' + fmt % compratio) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
522 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
523 if format > 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
524 ui.write(b'\n') |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
525 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
526 b'uncompressed data size (min/max/avg) : %d / %d / %d\n' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
527 % tuple(datasize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
528 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
529 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
530 b'full revision size (min/max/avg) : %d / %d / %d\n' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
531 % tuple(fullsize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
532 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
533 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
534 b'inter-snapshot size (min/max/avg) : %d / %d / %d\n' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
535 % tuple(semisize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
536 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
537 for depth in sorted(snapsizedepth): |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
538 if depth == 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
539 continue |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
540 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
541 b' level-%-3d (min/max/avg) : %d / %d / %d\n' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
542 % ((depth,) + tuple(snapsizedepth[depth])) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
543 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
544 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
545 b'delta size (min/max/avg) : %d / %d / %d\n' |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
546 % tuple(deltasize) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
547 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
548 |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
549 if numdeltas > 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
550 ui.write(b'\n') |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
551 fmt = pcfmtstr(numdeltas) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
552 fmt2 = pcfmtstr(numdeltas, 4) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
553 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
554 b'deltas against prev : ' + fmt % pcfmt(numprev, numdeltas) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
555 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
556 if numprev > 0: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
557 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
558 b' where prev = p1 : ' + fmt2 % pcfmt(nump1prev, numprev) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
559 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
560 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
561 b' where prev = p2 : ' + fmt2 % pcfmt(nump2prev, numprev) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
562 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
563 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
564 b' other : ' + fmt2 % pcfmt(numoprev, numprev) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
565 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
566 if gdelta: |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
567 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
568 b'deltas against p1 : ' + fmt % pcfmt(nump1, numdeltas) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
569 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
570 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
571 b'deltas against p2 : ' + fmt % pcfmt(nump2, numdeltas) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
572 ) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
573 ui.writenoi18n( |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
574 b'deltas against other : ' + fmt % pcfmt(numother, numdeltas) |
bd3b6f363fb9
debug-revlog: move the code in revlogutils module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49774
diff
changeset
|
575 ) |