English 中文(简体)
签入时出现cvs错误
原标题:
  • 时间:2008-09-16 08:30:42
  •  标签:

在添加新文件后尝试提交到cvs分支时,我得到了这个错误

Assertion failed: key != NULL, file hash.c, line 317

Any idea how to fix it so I can check my code in?
Both server and client are Linux and there are pre-commits involved.

问题回答

sleep er写道:

不确定问题是什么,但我通过进入服务器并删除存储库中的文件Attic/newfile.v并再次添加它来解决问题。

“阁楼”是CVS中被删除的文件所在的地方。在过去的某个时候,有人签入了newfile.v,后来它被删除了,因此移到了阁楼。

通过从存储库中删除,v文件,您破坏了包含文件“newfile”的旧提交。不要这样做。

正确的方法是恢复已删除的文件,然后用新文件替换其内容。

根据http://www.cs.indiana.edu/~machrist/notes/cvs.html

要恢复已从存储库中删除的文件,您基本上需要将该文件更新到其上次修订号(在实际删除之前)。例如:

cvs更新-r 1.7删除文件

这将恢复工作存储库中的deleted_file。要查找已删除的文件及其最近的修订号,请在命令提示符下发出cvs日志。

编辑以回应评论,解释阁楼中的,v文件的含义。

你在Windows上吗?你是否用不同的大小写将文件重命名为相同的名称(例如,MAKEFILE与MAKEFILE与MAKEFILE)?CVS过去对此有一个问题(也许现在仍然存在?):

OSDir/mailarchive-主题:Re:hash.c.312:findnode:

马努写道:

我试图在我的cvs树中将“makefile”重命名为“makefile”,然后:

cvs: hash.c:312: findnode: Assertion `key != ((void *)0)  failed.
cvs [server aborted]: received abort signal

CVS was never designed to cope with case insensitive file systems. It has been patched to the point where it mostly works, but there are still some places where it doesn t. This is one of them.

您可能还想阅读线程中的其余消息。

也许对您的存储库进行了某种提交前检查,请参阅此处

不确定问题是什么,但我通过进入服务器并删除存储库中的文件Attic/newfile.v并再次添加它来解决问题。





相关问题
热门标签