Mercurial > public > mercurial-scm > hg-stable
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 |