comparison mercurial/revlogutils/nodemap.py @ 44697:0792ad55e533

nodemap: access the mmap opener option using bytes The key is bytes and need to be accessed s such. Differential Revision: https://phab.mercurial-scm.org/D8413
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 14 Apr 2020 16:09:38 +0200
parents ed475420e0af
children b4537125eb3c
comparison
equal deleted inserted replaced
44696:ed475420e0af 44697:0792ad55e533
46 docket.tip_node = pdata[offset : offset + tip_node_size] 46 docket.tip_node = pdata[offset : offset + tip_node_size]
47 docket.data_length = data_length 47 docket.data_length = data_length
48 docket.data_unused = data_unused 48 docket.data_unused = data_unused
49 49
50 filename = _rawdata_filepath(revlog, docket) 50 filename = _rawdata_filepath(revlog, docket)
51 use_mmap = revlog.opener.options.get("exp-persistent-nodemap.mmap") 51 use_mmap = revlog.opener.options.get(b"exp-persistent-nodemap.mmap")
52 try: 52 try:
53 with revlog.opener(filename) as fd: 53 with revlog.opener(filename) as fd:
54 if use_mmap: 54 if use_mmap:
55 data = util.buffer(util.mmapread(fd, data_length)) 55 data = util.buffer(util.mmapread(fd, data_length))
56 else: 56 else:
130 raise error.ProgrammingError(msg) 130 raise error.ProgrammingError(msg)
131 131
132 can_incremental = util.safehasattr(revlog.index, "nodemap_data_incremental") 132 can_incremental = util.safehasattr(revlog.index, "nodemap_data_incremental")
133 ondisk_docket = revlog._nodemap_docket 133 ondisk_docket = revlog._nodemap_docket
134 feed_data = util.safehasattr(revlog.index, "update_nodemap_data") 134 feed_data = util.safehasattr(revlog.index, "update_nodemap_data")
135 use_mmap = revlog.opener.options.get("exp-persistent-nodemap.mmap") 135 use_mmap = revlog.opener.options.get(b"exp-persistent-nodemap.mmap")
136 136
137 data = None 137 data = None
138 # first attemp an incremental update of the data 138 # first attemp an incremental update of the data
139 if can_incremental and ondisk_docket is not None: 139 if can_incremental and ondisk_docket is not None:
140 target_docket = revlog._nodemap_docket.copy() 140 target_docket = revlog._nodemap_docket.copy()