[cvsnt] Re: How to convert binary files to text?

Tony Hoyle tmh at nodomain.org
Thu Nov 25 14:44:49 GMT 2004


Bo Berglund wrote:
> Concerning the version:
> C:\3RProj\MP\SrvMillPlus>cvs ver
> Client: Concurrent Versions System (CVSNT) 2.0.41a (client/server)
> Server: Concurrent Versions System (CVSNT) 2.0.41 (client/server)
> 
> Is this too old?

Shouldn't be, I think.

> I tested the following sequence:
> 1) Deleted file in the sandbox and updated. I received a file marked
>    as binary but with good Windows CRLF line endings (because the
>    file was actually already converted by the Delphi IDE but still
>    stored as binary)
> 
> 2) Issued cvs update -kt <filename>
>    This caused WinCvs to change the icon from binary to text but the
>    file actually did not change color (so it was not considered as altered)
> 
> 3) I opened the file in UltraEdit and found that all line endings are
>    now CRCRLF. So it looks like the local file now got all ofg its LF
>    chars epanded to CRLF while retaining the existing CR...

Yes, this is correct - it's reinterpreted the file as text, but you'd 
already put CRLF pairs into the repository, so it gets screwed up.

You need to move the file out of the way before doing this, then move it 
back, then commit a new revision (preferably two, as it takes a couple 
of revisions to 'stick').

For 2.0.41 it's something like:

backup file
cvs admin -kt  (this will screw up some older revisions... can't avoid that)
cvs update -kt
recover file
cvs commit -f
cvs commit -f

> What am I doing wrong here?
> Maybe it is not possible to change the file type if it has been changed 
> physically already but committed still as binary???

It's quite hard in versions <2.0.58 (basically impossible in the old CVS 
though, so it's an improvement).

Tony



More information about the cvsnt mailing list