Binary Files and Translation  In the most general sense,
Subversion handles binary files more gracefully than CVS does.
Because CVS uses RCS, it can only store successive full copies
of a changing binary file. Subversion, however, expresses
differences between files using a binary-differencing algorithm,
regardless of whether they contain textual or binary data. That
means that all files are stored differentially (compressed) in
the repository.  CVS users have to mark binary files with -kb
flags, to prevent data from being garbled (due to keyword
expansion and line-ending translations). They sometimes forget
to do this.  Subversion takes the more paranoid route—first, it
never performs any kind of keyword or line-ending translation
unless you explicitly ask it do so (see the section called
“svn:keywords and the section called “svn:eol-style for more
details). By default, Subversion treats all file data as literal
byte strings, and files are always stored in the repository in
an untranslated state.  Second, Su