【问题标题】:CVS keeps adding code at the end of the file I want to commitCVS 不断在我要提交的文件末尾添加代码
【发布时间】:2013-01-14 15:05:29
【问题描述】:

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

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

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

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

更多详情:

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

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

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

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

【问题讨论】:

  • 嗨。谢谢!我真的不确定我的问题是否对 SO 或 Programmers 更好。但确实,重新阅读常见问题解答让我觉得它更适合 SO。我会举报的。
  • 显而易见的问题是:这四个文件与正常工作的文件有什么不同?什么行不断增加?如果可能,请发布一个示例。
  • 一个数据点:我在使用 CVS 多年以来从未见过这种行为。但我不经常分支和合并。 cvs status filename 告诉你什么?
  • 它告诉我文件是最新的,工作版本 1.1.2.7 和存储库版本 1.1.2.7。扩展选项:ukv。还告诉我它在分支中。
  • 你必须更加明确。这不是我在 CVS 中遇到的任何行为,我一直在分支和合并。

标签: version-control cvs


【解决方案1】:

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

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

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

来完成
cvs add -kb file-name

添加新文件时,或

cvs admin -kb file-name

对于现有文件(将 file-name 替换为您的文件名)。

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

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

【讨论】:

  • 感谢您的解释!这是一个艰难的,我猜不到!你的修复现在似乎有效!
  • 太棒了——很高兴我能帮上忙。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
相关资源
最近更新 更多