Hi Arnon, I find the whole 'CVS' directory thing annoying. One day I'll make an option to store it with a different name, or store it in a different place - but of course that'll ruin backwards compatibility. One reason why we have the EntriesParser API in CVSNT - to try and get 3rd parties to use an API to get to the CVS directory rather than 'assume' it's 'just there'.
Enough of my rant. Change Management is a process. You need to train your team in how the tools work, and to follow the process. Then you need to audit their use of the tools and process. Ie: this isn't your problem - make it theirs. They wont accidentally delete a CVS directory, if they are required to checkin code once a day and you are auditing the checkin logs (a quick check through the commit e-mails once or twice a day). Make it simple - no commits, poor comments, etc: no approval of timesheet. If the developer accidentally deletes all of their code, how do they fix that? There is your answer to how to restore the missing 'CVS' directories. Ie: * checkout the tree again, or * restore from backup But if you make this your problem to fix, you'll never hear the end of it. Compliance with company procedures is the developers responsibility. Regards, Arthur > -----Original Message----- > From: > [email protected] > [mailto:info-cvs-bounces+arthur.barrett=march-hare.com@nongnu. > org] On Behalf Of Arnon Weinberg > Sent: Sunday, 26 February 2012 2:36 PM > To: [email protected] > Subject: How to detect missing CVS directories > > > > This problem seems like it should be common, but I haven't found it > posted anywhere. > > Developers may accidentally delete a CVS working directory > (ie, the one > with the Entries, Repositories, Root files), and not notice that they > have done so. The cvs command just ignores those directories > from then > on, so they don't get updated. When checking out / updating a large > tree, developers may not notice that this directory is then skipped. > > I modified a file, then simulated a missing CVS directory as follows: > >cd ~/directory/pwd > >mv CVS CVS.bak > >cvs checkout -A -d ~/directory module > ... > ? /home/user/directory/pwd > ... > > Running cvs checkout (or cvs update) without errors or change flags > generally is assumed to mean that the tree is now up to date. > However, > in this case, the directory is just skipped (cvs treats it > like any file > it doesn't recognize, even though it is in the repository), > and the tree > is not sync'ed. > > 1) How can missing CVS directories be detected? > 2) How can they be restored / regenerated? > > > > Arnon Weinberg > www.back2front.ca > > > >
