<hru...@gmail.com> wrote: > Does rsync suppose that a part of a file in the server is equal to > a part of a file in the client, if a hash value of these parts are > equal?
Yes. > Does cvsync do the same? (Embarrassingly, I don't actually remember how cvsync works in detail.) > Is this reliable? In practice, yes. If you reduce 2^n bit chunks of data to 2^m bit hash values, with n > m, there will always be collisions, i.e., chunks of data that are different but have the same hash value. However, the likelihood of such a collision can be made very, very small. Also, you can never transmit data with perfect reliability over an unreliable channel. With increasing effort you can make the probability of an undetected error arbitrarily small, but you can never reduce it to nothing. I will point out that the respective probabilities of data bits being corrupted on disk, in memory, on the various buses, or even inside the processor, are all non-zero. I don't have good figures at hand, but you'll need scientific notation to express how much more likely these events are than collisions for a 128-bit hash. (HGST, for instance, tells me that for their latest 4TB drives the error rate (non-recoverable, bits read) is 1 in 10^15.) > Is there a reliable way to make a local copy of the repository and > update it from time to time Yes, that's exactly what cvsync is for. -- Christian "naddy" Weisgerber na...@mips.inka.de