[Mono-list] A possible reason for getting newline problems

Matt Liotta mliotta@iname.com
Tue, 05 Mar 2002 16:11:13 -0800


Doesn't using -kb cause the file to be handled as binary?

-Matt

On 3/5/02 3:32 PM, "Martin Baulig" <martin@gnome.org> wrote:

> Hi guys,
> 
> after this thread about Unix/Windows newline conventions a few days
> ago I found a possible reason for these problems.
> 
> As I already mentioned earlier, I'm using an editor (GNU Emacs) which
> correctly handles DOS files and saves the file without changing the
> newline convention.
> 
> However, as I wanted to commit my Array.cs changes (the file is in
> Unix mode) and looking at the patch, I realized that the whole file
> was converted to DOS mode.
> 
> Since my editor cannot be responsible for this, the only possible
> reason was the cvs checkout from anoncvs on Windows.
> 
> So the first thing I did was converting the file back to Unix
> conventions, looking at the `cvs diff -u' output and then committing.
> 
> After that, I removed the file on my Windows box and checked it out
> again from CVS - and it was in DOS mode again :-(
> 
> So I looked at this again - and finally found the reason:
> 
> The standard mode for CVS is to do so-called keyword substitutions
> (so that things like $Id$ in a file are replaced) - and this also
> changes the whole file to Windows line endings.
> 
> So you need to use the -kb flag on every checkout and update.
> 
> It's best to put something like this into your ~/.cvsrc:
> 
> ====
> cvs -z3
> update -d -P -kb
> checkout -kb
> diff -u
> ====
> 
> Of course you also need to use an editor which can handle Unix line
> endings - but the best editor is useless if the file is already
> converted on checkout ...