无法将文件添加到CVSNT

时间:2009-08-12 14:06:11

标签: cvs cvsnt

我在尝试向CVS添加文件时遇到了一个奇怪的错误。

问题开始是因为案例错误,导致问题(即MyFile.js在CVS中为myfile.js)

我尝试删除该文件,并将其重新添加,现在我收到以下错误:

cvs server: could not find parsed rcsfile MyFile.js

我有什么方法可以永久删除此文件并启动新文件?

在Windows资源管理器中删除文件(在服务器上)并没有解决问题。当我在Windows资源管理器中删除该文件时,它允许我将其重新添加,但告诉我它在我再次更新时已被删除。

编辑:

我尝试了以下内容:

  • 通过cvs服务器上的Windows资源管理器删除版本化文件,然后通过cvs add and commit添加回来。这允许我添加它,但在第一次更新时将其从我的沙箱中删除。
  • 将文件添加为另一个名称(即MyFile2.js),并使用cvs重命名以重命名为正确的名称(MyFile.js)。这会将文件保留在我的沙箱中,但所有其他用户都会获得另一个名称(MyFile2.js)。如果我从沙箱中删除该文件,则会以其他名称(MyFile2.js)返回。
  • 通过cvs服务器上的Windows资源管理器删除版本化文件,并通过cvs添加和提交添加,然后尝试通过CVS删除它。这导致来自CVS的不同步消息。更新会从我的沙箱中删除该文件。

5 个答案:

答案 0 :(得分:1)

在资本化方面,NT文件系统有点不足:它记住了初始大写,但此后忽略了任何变化。

所有这些意味着您将不得不在存储库中采取一些重大步骤。先做好备份,如果你不喜欢这样做,找一个懂CVS的人。

第一步是找到您的存储库。如果您进入工作目录并查看文件CVS/Root的内容,您将看到如下字符串:

:ext:rivendell:/tera/cvs

这表示我的CVS存储库是从目录“/ tera / cvs”中的主机“rivendell”提供的。在该目录下,您将找到各个项目,最终您将深入查看目录,直到找到所需项目。

此时,要么你会看到版本文件 - 这么命名是因为它最后有一个“,v”,否则你就不会。如果你不这样做,那就找一个名为Attic的目录(虽然你说CVSNT没有阁楼,但我不相信你。)

这里有两个选择。最简单的方法是删除版本文件。您也可以将其重命名为一些无害的名称,例如“ix,v”,然后使用正确的大小写将其命名。无论如何,下一步不会改变

现在返回工作站,删除工作目录。完全。不要试图删除CVS子目录,或任何花哨的东西。如果您有需要保留的文件(因为尚未检入),请将它们复制到安全的地方。

从存储库中签出项目的新副本,并使用正确的大小写创建文件。同样,由于NTFS对于资本化很不满意,您不能简单地将保存的版本复制到目录中并重命名。

答案 1 :(得分:0)

您还需要从存储库本身的Attic文件夹中删除该文件。

答案 2 :(得分:0)

“cvs remove”后跟“cvs commit”不起作用吗?

答案 3 :(得分:0)

CVS正在变成一个放弃的软件:它仍然有很多错误,它们不会被修补。如果你可以切换到SVN那就更好了。甚至还有一些工具可以进行导入(我自己使用它并且它工作得很好)。他们导入一切,包括每个文件的历史记录。然后,您将能够轻松解决您的问题。

众所周知,CVS在重命名(其他操作)时会很痛苦。因此,如果您更改为SVN,将来可以花更少的时间来对抗版本控制软件。

如果您无法切换到SVN:

  • 你真的需要解决这个问题,最终的解决方案是重新安装CVS。这是最后的选择,但它会奏效。

编辑:我找到了this。也许你可以删除文件搞砸了的修订版?使用-0range命令。 小心:该命令被认为是危险的。所以你可能想先备份你的cvs。

答案 4 :(得分:0)

您是否尝试发出“cvs remove”命令从沙箱中删除文件并在服务器上标记为删除,提交删除并重新添加?我猜你遇到的是你的沙盒和服务器不同步。一旦文件受cvs控制,你不应该删除/重命名/ etc。使用shell命令,您应该只使用CVS命令。另请注意,CVSNT要求重命名后跟一个“目录”提交 - 提交文件只会在服务器端注册重命名 - 无论如何重命名都有一些问题,有些问题在最近的版本中得到解决。