D7836: nodemap: add a function to read the data from disk
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Tue Feb 11 01:24:25 UTC 2020
Closed by commit rHG6c07480d6659: nodemap: add a function to read the data from disk (authored by marmoute).
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state "Needs Review".
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D7836?vs=19884&id=20104
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D7836/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D7836
AFFECTED FILES
mercurial/debugcommands.py
mercurial/revlogutils/nodemap.py
tests/test-completion.t
tests/test-persistent-nodemap.t
CHANGE DETAILS
diff --git a/tests/test-persistent-nodemap.t b/tests/test-persistent-nodemap.t
--- a/tests/test-persistent-nodemap.t
+++ b/tests/test-persistent-nodemap.t
@@ -10,9 +10,9 @@
> exp-persistent-nodemap=yes
> EOF
$ hg debugbuilddag .+5000
- $ hg debugnodemap --dump | f --sha256 --size
+ $ hg debugnodemap --dump-new | f --sha256 --size
size=122880, sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7
- $ f --sha256 --bytes=256 --hexdump --size < .hg/store/00changelog.n
+ $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
size=122880, sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7
0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
0010: ff ff ff ff ff ff ff ff ff ff fa c2 ff ff ff ff |................|
diff --git a/tests/test-completion.t b/tests/test-completion.t
--- a/tests/test-completion.t
+++ b/tests/test-completion.t
@@ -291,7 +291,7 @@
debugmanifestfulltextcache: clear, add
debugmergestate:
debugnamecomplete:
- debugnodemap: dump
+ debugnodemap: dump-new, dump-disk
debugobsolete: flags, record-parents, rev, exclusive, index, delete, date, user, template
debugp1copies: rev
debugp2copies: rev
diff --git a/mercurial/revlogutils/nodemap.py b/mercurial/revlogutils/nodemap.py
--- a/mercurial/revlogutils/nodemap.py
+++ b/mercurial/revlogutils/nodemap.py
@@ -22,6 +22,13 @@
raise error.RevlogError(b'unknown node: %s' % x)
+def persisted_data(revlog):
+ """read the nodemap for a revlog from disk"""
+ if revlog.nodemap_file is None:
+ return None
+ return revlog.opener.tryread(revlog.nodemap_file)
+
+
def setup_persistent_nodemap(tr, revlog):
"""Install whatever is needed transaction side to persist a nodemap on disk
diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py
--- a/mercurial/debugcommands.py
+++ b/mercurial/debugcommands.py
@@ -2086,16 +2086,29 @@
@command(
b'debugnodemap',
- [(b'', b'dump', False, _(b'write persistent binary nodemap on stdin'))],
+ [
+ (
+ b'',
+ b'dump-new',
+ False,
+ _(b'write a (new) persistent binary nodemap on stdin'),
+ ),
+ (b'', b'dump-disk', False, _(b'dump on-disk data on stdin')),
+ ],
)
def debugnodemap(ui, repo, **opts):
"""write and inspect on disk nodemap
"""
- if opts['dump']:
+ if opts['dump_new']:
unfi = repo.unfiltered()
cl = unfi.changelog
data = nodemap.persistent_data(cl.index)
ui.write(data)
+ elif opts['dump_disk']:
+ unfi = repo.unfiltered()
+ cl = unfi.changelog
+ data = nodemap.persisted_data(cl)
+ ui.write(data)
@command(
To: marmoute, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list