问题
I have a production CVS repository that is a number of years old and have noticed that it has comma-v files with the same name in both Attic and in the actual directory for a given location. This appears to be an error.
My question is how can this occur in the first place and what will CVS do when duplicate files exist.
My guess (hope) is that it will ignore the Attic version all the time when there is a non Attic version. Can anyone confirm if CVS behaves well all the time for this situation.
Incidentally, this error was flagged by cvs2svn as I'm in the process of getting into a "newer" source control system.
回答1:
This problem results from somebody's mucking around within the CVS repository (i.e., not via the cvs client). Unfortunately, such mucking is common, for example to get around the limitation that CVS does not allow files to be renamed. Perhaps somebody tried to rename a file by moving its FILENAME,v
file, without noticing that the filename had been in use earlier in the project's history and therefore already had an Attic/FILENAME,v
file.
My guess (hope) is that it will ignore the Attic version all the time when there is a non Attic version. Can anyone confirm if CVS behaves well all the time for this situation.
Since this is a form of repository corruption, I doubt whether the behavior of CVS in this situation is documented. Most likely your guess is correct, but ensuring that it always behaves this way would probably require an analysis of the CVS source code--for all versions of CVS that you have ever used. I suggest that you do a few experiments with your typical CVS client and your most important branches.
Incidentally, this error was flagged by cvs2svn as I'm in the process of getting into a "newer" source control system.
cvs2svn has a number of suggestions for working around this problem.
来源:https://stackoverflow.com/questions/3420741/cvs-comma-v-files-in-attic-and-directory