mercurial/revlogutils/nodemap.py
changeset 44314 7f4f7ef3133e
parent 44312 563dfdfd01a4
child 44315 7762a295fd4d
equal deleted inserted replaced
44313:6f9e8e142cea 44314:7f4f7ef3133e
    13 import struct
    13 import struct
    14 
    14 
    15 from .. import (
    15 from .. import (
    16     error,
    16     error,
    17     node as nodemod,
    17     node as nodemod,
    18     pycompat,
    18     util,
    19 )
    19 )
    20 
    20 
    21 
    21 
    22 class NodeMap(dict):
    22 class NodeMap(dict):
    23     def __missing__(self, x):
    23     def __missing__(self, x):
    67             "cannot persist nodemap of a filtered changelog"
    67             "cannot persist nodemap of a filtered changelog"
    68         )
    68         )
    69     if revlog.nodemap_file is None:
    69     if revlog.nodemap_file is None:
    70         msg = "calling persist nodemap on a revlog without the feature enableb"
    70         msg = "calling persist nodemap on a revlog without the feature enableb"
    71         raise error.ProgrammingError(msg)
    71         raise error.ProgrammingError(msg)
    72     data = persistent_data(revlog.index)
    72     if util.safehasattr(revlog.index, "nodemap_data_all"):
       
    73         data = revlog.index.nodemap_data_all()
       
    74     else:
       
    75         data = persistent_data(revlog.index)
    73     uid = _make_uid()
    76     uid = _make_uid()
    74     datafile = _rawdata_filepath(revlog, uid)
    77     datafile = _rawdata_filepath(revlog, uid)
    75     olds = _other_rawdata_filepath(revlog, uid)
    78     olds = _other_rawdata_filepath(revlog, uid)
    76     if olds:
    79     if olds:
    77         realvfs = getattr(revlog, '_realopener', revlog.opener)
    80         realvfs = getattr(revlog, '_realopener', revlog.opener)