On Fri, Jan 13, 2023 at 05:35:57PM +0100, Hans Petter Selasky wrote: > > Not to discourage you, but you seem to be making statements without a good > > understanding of how git works. If there is a history rewrite (even one that > > for some reason goes back millions of commits) all hash calculations will > > happen exactly once -- on the system of the person who's rewriting the > > history. After they push it, it's just a bunch of objects that everyone else > > merely downloads. > > If you used CRC, you would not need that, because CRC calculations are > "concatenatable", while SHA-1's are not. CRC would just need the first and > the last hash, and then you would apply the "difference". It doesn't matter how it works behind the scenes as long as the produced hash is not unique (and CRC gives you no assurance of being unique). Git is built on the concept that every object has a unique hash. If this is no longer true, then it's literally no longer git, but is something else. Since we're discussing this on the git list, it's not really a discussion worth having here. -K