mercurial/revlogutils/nodemap.py
changeset 50925 d718eddf01d9
parent 50507 4fe46f96b56b
child 51172 1486d8c63f64
equal deleted inserted replaced
50924:7a8ea1397816 50925:d718eddf01d9
   172             revlog._nodemap_file = get_nodemap_file(revlog)
   172             revlog._nodemap_file = get_nodemap_file(revlog)
   173         else:
   173         else:
   174             msg = "calling persist nodemap on a revlog without the feature enabled"
   174             msg = "calling persist nodemap on a revlog without the feature enabled"
   175             raise error.ProgrammingError(msg)
   175             raise error.ProgrammingError(msg)
   176 
   176 
   177     can_incremental = util.safehasattr(revlog.index, "nodemap_data_incremental")
   177     can_incremental = hasattr(revlog.index, "nodemap_data_incremental")
   178     ondisk_docket = revlog._nodemap_docket
   178     ondisk_docket = revlog._nodemap_docket
   179     feed_data = util.safehasattr(revlog.index, "update_nodemap_data")
   179     feed_data = hasattr(revlog.index, "update_nodemap_data")
   180     use_mmap = revlog.opener.options.get(b"persistent-nodemap.mmap")
   180     use_mmap = revlog.opener.options.get(b"persistent-nodemap.mmap")
   181 
   181 
   182     data = None
   182     data = None
   183     # first attemp an incremental update of the data
   183     # first attemp an incremental update of the data
   184     if can_incremental and ondisk_docket is not None:
   184     if can_incremental and ondisk_docket is not None:
   214 
   214 
   215     if data is None:
   215     if data is None:
   216         # otherwise fallback to a full new export
   216         # otherwise fallback to a full new export
   217         target_docket = NodeMapDocket()
   217         target_docket = NodeMapDocket()
   218         datafile = _rawdata_filepath(revlog, target_docket)
   218         datafile = _rawdata_filepath(revlog, target_docket)
   219         if util.safehasattr(revlog.index, "nodemap_data_all"):
   219         if hasattr(revlog.index, "nodemap_data_all"):
   220             data = revlog.index.nodemap_data_all()
   220             data = revlog.index.nodemap_data_all()
   221         else:
   221         else:
   222             data = persistent_data(revlog.index)
   222             data = persistent_data(revlog.index)
   223         # EXP-TODO: if this is a cache, this should use a cache vfs, not a
   223         # EXP-TODO: if this is a cache, this should use a cache vfs, not a
   224         # store vfs
   224         # store vfs