A quanto ho capito quando Git assegna un hash SHA1 a un file, questo SHA1 è univoco per il file in base al suo contenuto.
Di conseguenza se un file si sposta da un repository a un altro, SHA1 per il file rimane lo stesso in quanto il suo contenuto non è cambiato.
In che modo Git calcola il digest SHA1? Lo fa sul contenuto completo del file non compresso?
Vorrei emulare l'assegnazione di SHA1 al di fuori di Git.