comparison mercurial/revlogutils/nodemap.py @ 47311:5bc6d2fc1cfc

persistent-nodemap: use the intended uuid size I overlooked this in the initial implementation. The format already supporting any uuid size so, nothing horrible should happens. Differential Revision: https://phab.mercurial-scm.org/D10754
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 19 May 2021 17:12:06 +0200
parents 9a3aa54774ff
children 7ea39d633cf3
comparison
equal deleted inserted replaced
47310:9a3aa54774ff 47311:5bc6d2fc1cfc
286 286
287 def _make_uid(): 287 def _make_uid():
288 """return a new unique identifier. 288 """return a new unique identifier.
289 289
290 The identifier is random and composed of ascii characters.""" 290 The identifier is random and composed of ascii characters."""
291 return hex(os.urandom(ID_SIZE)) 291 # size we "hex" the result we need half the number of bits to have a final
292 # uuid of size ID_SIZE
293 return hex(os.urandom(ID_SIZE // 2))
292 294
293 295
294 # some special test logic to avoid anoying random output in the test 296 # some special test logic to avoid anoying random output in the test
295 stable_docket_file = encoding.environ.get(b'HGTEST_DOCKETIDFILE') 297 stable_docket_file = encoding.environ.get(b'HGTEST_DOCKETIDFILE')
296 298
319 if pycompat.ispy3: 321 if pycompat.ispy3:
320 r.seed(int_seed, version=1) 322 r.seed(int_seed, version=1)
321 else: 323 else:
322 r.seed(int_seed) 324 r.seed(int_seed)
323 # once we drop python 3.8 support we can simply use r.randbytes 325 # once we drop python 3.8 support we can simply use r.randbytes
324 raw = r.getrandbits(ID_SIZE * 8) 326 raw = r.getrandbits(ID_SIZE * 4)
325 assert ID_SIZE == 8 327 assert ID_SIZE == 8
326 p = struct.pack('>Q', raw) 328 p = struct.pack('>L', raw)
327 new = hex(p) 329 new = hex(p)
328 with open(stable_docket_file, 'wb') as f: 330 with open(stable_docket_file, 'wb') as f:
329 f.write(new) 331 f.write(new)
330 return new 332 return new
331 333