A client site still uses cvs, the ever trusty version control system. After what seemed a run of the mill merge I noticed this:
C lib/jt400_3_3.jar cvs update: move away lib/jt400_3_3.jar; it is in the way
Very peculiar. That file hadn’t changed on the branch. I googled around and an explanation started to come together.
First, from the always excellent Roedy Green’s Java & Internet Glossary on Mindprod:
CVS is disturbed by the appearance of repository files it did not put there. Your best bet is simply to delete the entire directory containing the offending file by hand, and re checkout or reupdate the directory to build the necessary entries. Then you can add the files safely.
Then, I found this mailing list post:
This means the file that CVS wants to checkout exists on the local machine but CVS never created the file in the past. This it isn’t CVS’s file and it complains rather than blindly overwriting.
The solution everywhere was the same: just blow away the directory and check it out again. Worked for me. Now I need to puzzle out how it happened in the first place…