From: Junio C Hamano Date: Wed, 30 Nov 2011 18:05:24 GMT Subject: Re: [PATCH] Implement fast hash-collision detection Message-ID: <7vzkfdqye3.fsf@alter.siamese.dyndns.org> In-Reply-To: Nguyen Thai Ngoc Duy writes: > What I'm thinking is whether it's possible to decouple two sha-1 roles > in git, as object identifier and digest, separately. Why it would be a good thing? If you have a collided identifier, somebody has to choose which blob a particular tree wants to have at the path, and because the tree would not record anything but the identifier, you cannot. > ... > The day sha-1 is broken, a project can generate new digests from its > old good repo and enforce developers to use new digests for > verification instead of sha-1. sha-1 is still used by git as > identifier after that day. And an old blob that is identified with a SHA-1 now has a new blob that has different contents but happens to have the same SHA-1. How does Git decide which blob to use when a particular object is named by the SHA-1?