问题
经常(但不是每次)使用CVS签入文件时,例如:.java, .cs, .xml
等,文件的每一行都会得到一个回车符。
例:
团队成员在办理登机手续前提交的文件:
// Begin file
class Foo
{
public Foo()
{
// Do step 1
// Do step 2
}
}
// End file
由团队成员签出时提交的文件:
// Begin file
class Foo
{
public Foo()
{
// Do step 1
// Do step 2
}
}
// End file
发展环境
我曾经尝试过什么
我尝试在工具 - >选项下更改NetBeans中的值:build.compiler.emacs=true
,认为这可能会在签入时导致某种Unix / Windows转换问题?这没有任何区别。
我是否遗漏了一些文件在Windows / IDE / Cygwin堆栈中检入CVS时可能导致此问题的情况?
有些东西正在将DOS换行符(CR LF)转换为Unix换行符对(只是LF)。我个人打赌它是CVS。您可能想尝试使用TortoiseCVS而不是Cygwin CVS。
当将文件提交到服务器时,Windwos原生CVS客户端将文本文件(\ r \ n)中的MS-DOS行结尾转换为Unix样式的行结尾,以便在存储库中将文件保存在'规范的形式与\n
代表一条线的结尾。当Windows本机客户端还将转换从服务器关闭文件时结束的行。
但是,我认为默认的Cygwin CVS客户端就像一个Unix客户端,并假设不需要行结束转换。因此,如果您使用该客户端签入具有MS-DOS样式结尾的文件(\ r \ n),您将会遇到这种混淆。
看起来使用Cygwin客户端的人正在使用工具来关注将文件转换为MS-DOS样式的行结尾(或者某些东西)。
一个潜在的解决方法是卸载Cygwin CVS客户端并在Windows / Cygwin盒子上安装WinCVS客户端,这样即使Cygwin shell处于活动状态,也会使用Windows本机客户端:
另一种在特定模式下配置你的Cygwin坐骑的可能性(但是我对Cygwin并不是很熟悉,知道它有多好用,或者它是否会引入一些问题 - 自从我尝试使用Cygwin以来已经很久了) :
我刚碰到的另一种可能性 - 如果文件以Unicode格式保存但以CVS格式存储为ASCII / Text,则会添加额外的行终止符。