# HG changeset patch # User mpm@selenic.com # Date 1118898700 28800 # Node ID 67081329d49a5f03175616abf7856ebfa45029f0 # Parent 4b0f562c61f4b2b23396088c8ee68247cb9b3e62 Change the size of the short hash representation -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Change the size of the short hash representation First note that this number doesn't really matter, as we always check for ambiguous short hash ids. Here's the math on collision probability: >>> import math >>> def p(f, n): return 1 - (1 / math.exp(n**2/(2*f))) ... >>> p(2**32, 30000.0) 0.09947179164613551 # with 30000 changesets (BKCVS), we have a 9% chance >>> p(2**32, 65000.0) 0.38850881217977273 # and with a full import from BK, we'd have a 39% chance >>> p(2**40, 1e6) 0.36539171908447321 # we'd like to be "safe" for 1M csets, so 40 isn't enough >>> p(2**48, 1e6) 0.001774780051374103 # But 48 looks good >>> p(2**48, 1e7) 0.16275260939624481 >>> p(2**48, 5e6) 0.043437281083569146 >>> p(2**48, 2e6) 0.0070802434913129764 >>> p(2**48, 3e6) 0.01586009440574343 manifest hash: 24d9f928a463f46708b0e11fb781d5a241851424 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCsQoMywK+sNU5EO8RAoBBAJwII9GV6dT9QUOYAk3gZGw9z0JvjACfSI4q IFnTu1F7P5OuLelO1GsM8Bs= =CNWk -----END PGP SIGNATURE----- diff -r 4b0f562c61f4 -r 67081329d49a mercurial/revlog.py --- a/mercurial/revlog.py Wed Jun 15 19:58:48 2005 -0800 +++ b/mercurial/revlog.py Wed Jun 15 21:11:40 2005 -0800 @@ -13,7 +13,7 @@ def hex(node): return binascii.hexlify(node) def bin(node): return binascii.unhexlify(node) -def short(node): return hex(node[:4]) +def short(node): return hex(node[:6]) def compress(text): if not text: return text