Hi,

The CVS manual incorrectly says that if a binary file is accidentally 
added and committed without the -kb option, that the problem can be
corrected with
        cvs admin -kb file
        cvs update -A
        
This is not true on platforms which use different line-ending
conventions than Unix (Windows and Mac).  The only universally
reliable recovery method is to overwrite the whole file with
a valid copy obtained from outside cvs:
        cvs admin -kb file
        cvs update -A
        copy <valid bits obtained independently of cvs> file
        cvs commit file

The reason is that the initial commit will change CRLF
sequences which happen to be in the binary data to LF, which
in general is not a reversible operation (CR -> LF on Macs).

For example, if the original data contained CR LF LF, then
the initial commit will store LF LF in the repository,
and a subsequent checkout without -kb will get CR LF CR LF,
and with -kb will get LF LF, incorrect either way.

The documentation should be fixed to not mislead people.
Binary files committed without -kb can not always be recovered 
from cvs, at least on non-Unix platforms.

Cheers,
-Jim Avera


_______________________________________________
Bug-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-cvs

Reply via email to