Mám představu, jak se to používá při deduplikaci (systém, kdy se identické soubory ukládají jen jednou):
1. spočtu hash, a podívám se do databáze, zda k němu už mám uložený soubor
2. pokud ne, uložím do databáze
3. pokud ano, musím porovnat celý obsah
4. pokud je stejný, nový neukládám, jen zvýším čítač a zajistím propojení
5. pokud se liší, uložím do databáze jako další instanci se stejným hashem (a nějak je odliším)
nemáš pravdu, viz dokumentace svn https://github.com/apache/subversion/blob/1.9.x/notes/wc-ng/pristine-store#L11
Mohu ti ještě ukázat zdrojáky pokud něvěříš ;)
"Například v nejrůznějších systémech pro práci se soubory a jejich verzemi se mohou shodné soubory detekovat právě podle jejich otisku. Ale pokud se již nelze spoléhat na to, že dva různé soubory mají různé otisky, přestává být takováto detekce použitelná."
Toto je trochu nafouknuté, na to nejde 100% spoléhat ani při SHA-512 (množina souborů bude vždy větší než množina hashů) a zároveň tu ještě pro SHA-1 nemáme kolizi 2. řádu. Že něco nezafunguje pro 2 složitě a záměrně upravené soubory se dá předpokládat, ale že by nám synchronizační/verzovací systém pomotal běžné soubory je stále stejně nereálné.