D7841: nodemap: add a optional `nodemap_add_full` method on indexes
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Sun Feb 2 08:18:57 UTC 2020
marmoute added a comment.
marmoute updated this revision to Diff 19830.
small doc update on .#s[1]
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D7841?vs=19786&id=19830
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D7841/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D7841
AFFECTED FILES
mercurial/pure/parsers.py
mercurial/revlogutils/nodemap.py
CHANGE DETAILS
diff --git a/mercurial/revlogutils/nodemap.py b/mercurial/revlogutils/nodemap.py
--- a/mercurial/revlogutils/nodemap.py
+++ b/mercurial/revlogutils/nodemap.py
@@ -15,7 +15,7 @@
from .. import (
error,
node as nodemod,
- pycompat,
+ util,
)
@@ -69,7 +69,10 @@
if revlog.nodemap_file is None:
msg = "calling persist nodemap on a revlog without the feature enableb"
raise error.ProgrammingError(msg)
- data = persistent_data(revlog.index)
+ if util.safehasattr(revlog.index, "nodemap_data_all"):
+ data = revlog.index.nodemap_data_all()
+ else:
+ data = persistent_data(revlog.index)
uid = _make_uid()
datafile = _rawdata_filepath(revlog, uid)
olds = _other_rawdata_filepath(revlog, uid)
diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py
--- a/mercurial/pure/parsers.py
+++ b/mercurial/pure/parsers.py
@@ -149,6 +149,13 @@
through the dedicated `devel.persistent-nodemap` config.
"""
+ def nodemap_data_all(self):
+ """Return bytes containing a full serialization of a nodemap
+
+ The nodemap should be valid for the full set of revisions in the
+ index."""
+ return nodemaputil.persistent_data(self)
+
class InlinedIndexObject(BaseIndexObject):
def __init__(self, data, inline=0):
To: marmoute, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list