This is fallout from resolved issue #689, which caused
commits/updates/checkouts to do compare checksums between client and
server.
Imports are not yet comparing checksums. In
libsvn_client/commit.c: send_file_contents()
we currently pass NULLs for the base_checksum and result_checksum
arguments to editor->apply_textdelta(). The base_checksum should stay
NULL, of course, no change needed there. The "gotcha" is the
result_checksum: in order to have it in time to pass to
apply_textdelta(), we'd have to run over every byte of the outgoing
file before we start to send it. That'll be very bad for imports of
large files.
The solution is to move the result_checksum argument to close_file(),
which is where I should have put it in the first place :-). So this
change should happen in two stages:
1. Move result_checksum from apply_textdelta() to close_file(),
change all callers accordingly.
2. Then add the result checksum in the import case. This may imply
farther-reaching changes, such as the ability to retrieve a
checksum
from an svn_stream at close time, dunno. We'll cross that bridge
when we come to it.