1

我的 CVS 项目中有 4 个文件有问题。每次我提交其中一个文件时,CVS 都会在其末尾添加相同的代码行。这行代码是当前文件的重复行(但不是它的最后一行)。

我尝试了几件事:更新、删除行并提交、删除所有行并提交、添加行并提交、添加标题和提交。但是我总是将同一行代码添加到我的文件末尾。我可以删除所有文件并重新创建它们,但我会丢失所有历史数据。

我发现 CVS 在我提交时修改我的文件很尴尬。它是否会适得其反,因为它可能会在合规代码中添加错误?

我可以补充一点,我的文件是一个 .strings(文本文件,unicode)。我正在一个分支上工作,但最近将它合并到主干中。

更多细节:

  • 我在虚拟 Windows 机器上使用 TortoiseSVN,它可以通过这两者之间的网络驱动器访问我的 Mac OS X 的 Documents 文件夹。

  • 事实证明,我的同事拥有相同的项目,但在真实的 Windows 文件夹中,可以毫无问题地提交。

  • 现在他这样做了,问题也为我解决了。

  • 但我不知道会发生什么。我唯一的线索是 Mac OS X 中一个会破坏 TortoiseSVN 的隐藏字符。可能吗?

4

1 回答 1

1

我没有遇到过 CVS 的这个问题,但请注意您提到您正在编辑的文件是 Unicode 文本(您没有提到这是否意味着 UTF8 或 UTF16,但两者都可能导致问题)。

根据您的 CVS 服务器是如何构建的,以及它的运行方式(以及在什么平台上),服务器很可能支持 Unicode。这可能会导致一系列可能的问题,包括在 Unicode 字符的第二个(或更高)字节等于 ASCII '$' 的地方扩展 RCS 样式的 $ 标记。

解决方法是将 Unicode 源文件标记为二进制对象。从命令行,这可以使用

cvs add -kb file-name

添加新文件时,或

cvs admin -kb file-name

对于现有文件(将文件名替换为文件名)。

在后一种情况下,我建议删除(本地副本)文件并运行“cvs update”以在更改类型后将其取回。

请注意,这样做不太可能对您已经在文件中看到的更改有所帮助,因此请务必检查文件,并在进行此更改后修复任何现有问题。

于 2013-01-15T18:41:24.130 回答