Mercurial > hg
diff mercurial/revlogutils/nodemap.py @ 44314:7f4f7ef3133e
nodemap: add a optional `nodemap_add_full` method on indexes
This method can be used to obtains persistent data for a full nodemap. The end
goal is for some index implementation to managed the nodemap serialization them
selves (eg: the rust implementation)
Differential Revision: https://phab.mercurial-scm.org/D7841
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 15 Jan 2020 15:48:19 +0100 |
parents | 563dfdfd01a4 |
children | 7762a295fd4d |
line wrap: on
line diff
--- a/mercurial/revlogutils/nodemap.py Wed Jan 15 15:48:09 2020 +0100 +++ b/mercurial/revlogutils/nodemap.py Wed Jan 15 15:48:19 2020 +0100 @@ -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)