comparison mercurial/revlogutils/nodemap.py @ 51151:85d96517e650 stable

persistent-nodemap: respect the mmap setting when refreshing data After writing updated data, we reload the in-memory data. However, that logic was? wrong. We were doing file read when mmap was requested and when the configuration was requesting to not use mmap? we were using it. This should now be fine.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 21 Dec 2023 01:45:43 +0100
parents 1486d8c63f64
children 8e24f4f86ba8
comparison
equal deleted inserted replaced
51150:1486d8c63f64 51151:85d96517e650
204 with revlog.opener(datafile, b'r+') as fd: 204 with revlog.opener(datafile, b'r+') as fd:
205 fd.seek(target_docket.data_length) 205 fd.seek(target_docket.data_length)
206 fd.write(data) 206 fd.write(data)
207 if feed_data: 207 if feed_data:
208 if use_mmap: 208 if use_mmap:
209 fd.flush()
210 new_data = util.buffer(util.mmapread(fd, new_length))
211 else:
209 fd.seek(0) 212 fd.seek(0)
210 new_data = fd.read(new_length) 213 new_data = fd.read(new_length)
211 else:
212 fd.flush()
213 new_data = util.buffer(util.mmapread(fd, new_length))
214 target_docket.data_length = new_length 214 target_docket.data_length = new_length
215 target_docket.data_unused = new_unused 215 target_docket.data_unused = new_unused
216 216
217 if data is None: 217 if data is None:
218 # otherwise fallback to a full new export 218 # otherwise fallback to a full new export