It's former. It splits files into blocks (defaulting to 32KB, but that's configurable), computes hashes (two separate hashes per block) and stores them in a file in the backup config directory. These are used to detect modified blocks. It also computes a hash of an entire file and stores it in the same hash file. This is used to hedge against false negatives with modified block detection. The original version (from '09) didn't use the full-file hash, so it resorted to re-copying files in full after several incremental updates.