SHA-1 is cryptographically weakened. Mercurial needs to switch to a strong hash function.

Goals

* New hash algorithm should be cryptographically secure. * New hash algorithm should be fast, if possible (SHA-1 hashing is already a bottleneck in some operations). * Mercurial should support N hash algorithms without requiring invasive changes to storage data structures, wire protocol communication is. (This is because whatever we replace SHA-1 with will presumably be broken in several years anyway and we shouldn't need to retool everything to roll out a new hash algorithm.) * Transition plan will be up to repository owner, not a strict requirement for a specific version of Mercurial


CategoryNewFeatures