Konkrétně to funguje tak, že jsou soubory rozděleny na různě velké bloky, pro každý z nich je vypočítán haš (HMAC-SHA256) a do zálohy jsou uloženy jen ty bloky, které v ní ještě nejsou. V každém repozitáři se zálohou se pak takový blok nachází právě jednou, bez ohledu na to, odkud pochází.
Mám související dotaz: Pokud se existence bloku v úložišti posuzuje jen podle haše, nemůže se stát, že dojde - byť s minimální pravděpodobností - ke kolizi a po obnovení dat ze zálohy dostanu něco jiného? Odhaduju, že to asi bude souviset s tou velikostí bloku - ale i když ji shora omezím, dá se pracovat s jistotou, nebo jen velmi, velmi nízkou pravděpodobností, že k takovému problému dojde?
Je mi jasné, že do hry vstupují i další jevy možná s řádově vyšší pravděpodobností, jako třeba otočení bitu v paměti nebo při cestě po sběrnici, ale zrovna u procesu zálohování bych radši pracoval s jistotou než s pravděpodobností, pokud ta možnost kolize existuje :-).