This post originated from an RSS feed registered with Java Buzz
by Weiqi Gao.
Original Post: A Bit Of CVS Mystery
Feed Title: Weiqi Gao's Weblog
Feed URL: http://www.weiqigao.com/blog/rss.xml
Feed Description: Sharing My Experience...
I had to deal with a bit of CVS mystery at work last Friday (or this Friday depending on whether the week starts with a Sunday or a Monday and however the adjectives 'last,' 'this,' and 'next' work with days of the week—I'm still confused—anyway, it was two days ago) whereby messages such as the following is issued for an entire subdirectory structure:
[...]
cvs update: move away lib/asdf/qwer.cpp; it is in the way
C lib/asdf/qwer.cpp
cvs update: move away lib/asdf/qwer.h; it is in the way
C lib/asdf/qwer.h
[...]
This happened whenever I tried to update my workspace with my usual CVS command in the project directory:
[weiqi@gao] $ cvs -q -z9 up -dP
A simplified version of the project directory is as follows:
where module-1, ..., module-n contains sources and bin and lib contains compiled executables and dynamic link libraries respectively.
Naturally, the bin and lib directory are not in CVS, and we have a .cvsignore file under $project-dir that lists both directories to prevent CVS from printing out questions about files in these directories when I update.
Everything worked just fine until the CVS directory restructure. Under the new and improved plan, the lib directory and a subdirectory tree underneath it is added to CVS:
All of these is done somewhere else. All I have to do is to issue my CVS update command. My first try pulled down the new subdirectories and files. The conflicts happened on subsequent CVS updates.
As it turned out, my problem can be fixed by adding a line
D/lib////
to the $project-dir/CVS/Entries file, or by deleting the entire lib tree and redo CVS update.
But I still don't understand how my workspace got the way it was. Since my problem is solved, I'm not inclined to investigate (i.e., try to reproduce the weird situation) further.