<p>When trying to commit to a cvs branch after adding a new file I get this error</p>

<pre><code>Assertion failed: key != NULL, file hash.c, line 317
</code></pre>

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

[{'answer_id': 70441, 'author': 'Chris Kimpton', 'author_id': 48310, 'author_profile': 'https://Stackoverflow.com/users/48310', 'pm_score': 0, 'selected': False, 'text': '<p>Perhaps there is some kind of pre-commit check on your repository, see <a href="http://ximbiot.com/cvs/manual/cvs-1.12.13/cvs_18.html#SEC188" rel="nofollow noreferrer">here</a></p>\n'}, {'answer_id': 70576, 'author': 'Bert F', 'author_id': 11296, 'author_profile': 'https://Stackoverflow.com/users/11296', 'pm_score': 1, 'selected': False, 'text': '<p>Are you on Windows and did you rename a file to the same name with different case (e.g. MAKEFILE vs Makefile vs makefile)?  CVS used to have a problem with this (and maybe still does?):</p>\n\n<p>OSDir/mailarchive - <a href="http://osdir.com/ml/version-control.cvs.bugs/2003-01/msg00092.html" rel="nofollow noreferrer">Subject:   Re: hash.c.312: findnode:</a></p>\n\n<blockquote>\n  <p>Manu writes:</p>\n  \n  <blockquote>\n    <p>I try to rename "makefile" to "Makefile" in my cvs tree, then:</p>\n  </blockquote>\n</blockquote>\n\n<pre><code>cvs: hash.c:312: findnode: Assertion `key != ((void *)0)\' failed.\ncvs [server aborted]: received abort signal\n</code></pre>\n\n<blockquote>\n  <p>CVS was never designed to cope with case insensitive file systems.  It\n  has been patched to the point where it mostly works, but there are still\n  some places where it doesn\'t.  This is one of them.</p>\n</blockquote>\n\n<p>You might want to read the rest of the messages in the thread as well.</p>\n'}, {'answer_id': 70725, 'author': 'sleep-er', 'author_id': 7873, 'author_profile': 'https://Stackoverflow.com/users/7873', 'pm_score': 0, 'selected': False, 'text': '<p>Not sure what the issue was but I solved it by going onto the server and deleting the file Attic/newfile.v in the repository and adding it again.</p>\n'}, {'answer_id': 70884, 'author': 'ddaa', 'author_id': 11549, 'author_profile': 'https://Stackoverflow.com/users/11549', 'pm_score': 2, 'selected': False, 'text': '<blockquote>\n  <p>sleep-er writes:</p>\n  \n  <blockquote>\n    <p>Not sure what the issue was but I solved it by going onto the server and deleting the file Attic/newfile.v in the repository and adding it again.</p>\n  </blockquote>\n</blockquote>\n\n<p>The "Attic" is the place where deleted files go in CVS. At some point in the past, someone checked in newfile.v, and at some later point it was deleted, hence moved to the Attic.</p>\n\n<p>By deleting the ,v file from the repository you corrupted older commits that included the file "newfile". Do not do this.</p>\n\n<p>The correct way is to restore the deleted file, then replace its content by the new file.</p>\n\n<p>According to <a href="http://www.cs.indiana.edu/~machrist/notes/cvs.html" rel="nofollow noreferrer">http://www.cs.indiana.edu/~machrist/notes/cvs.html</a></p>\n\n<blockquote>\n  <p>To recover a file that has been removed from the repository, you essentially need to update that file to its last revision number (before it was actually deleted).  For example:</p>\n  \n  <p>cvs update -r 1.7 deleted_file</p>\n  \n  <p>This will recover deleted_file in your working repository.  To find deleted files and their last revision number, issue cvs log at the command prompt.</p>\n</blockquote>\n\n<p>Edited in reply to comment to explain what the ,v file in the Attic means.</p>\n'}]
['https://Stackoverflow.com/questions/70366', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/7873/']