Notare che sì, git usa sha1 per versionare, ma anche tag e commit
firmati firmano lo sha1, e quindi la garanzia che un tag corrisponda a
quanto rilasciato dall'autore dipende dalla sicurezza di sha1.
Torvalds ha parlato.
Git non calcola solamente gli hash, ma aggiunge anche un header. Questo rende molto difficile creare due oggetti (commit, file,...) diversi ma con hash uguale. Molto più complicato di generare 2 file pdf come nell'esperimento.
Probabilmente in futuro git userà un altro tipo di algoritmo. Nel futuro più immediato si aggiungerenno ulteriori controlli di sicurezza per rendere quasi impossibile l'inserimento di un repository di commit farlocchi.
Ciao,
Lorenzo