Эта проблема возникает из-за того, что кто-то копается в репозитории CVS (т.е. не через клиент cvs). К сожалению, такое хулиганство распространено, например, чтобы обойти ограничение, заключающееся в том, что CVS не позволяет переименовывать файлы. Возможно, кто-то пытался переименовать файл, переместив его файл FILENAME,v
, не заметив, что имя файла использовалось ранее в истории проекта и, следовательно, уже имело файл Attic/FILENAME,v
.
Мое предположение (надежда) состоит в том, что он будет игнорировать чердак версию все время, когда есть не чердак версия. Может ли кто-нибудь подтвердить, что CVS постоянно ведет себя хорошо в этой ситуации.
Так как это форма повреждения хранилища, я сомневаюсь, задокументировано ли поведение CVS в этой ситуации. Скорее всего, ваше предположение верно, но для обеспечения того, чтобы он всегда вел себя таким образом, вероятно, потребуется анализ исходного кода CVS - для всех версий CVS, которые вы когда-либо использовали. Я предлагаю вам провести несколько экспериментов с вашим типичным клиентом CVS и вашими наиболее важными ветвями.
Кстати, эта ошибка была помечена cvs2svn, поскольку я нахожусь в процессе "более новой" системы контроля версий.
cvs2svn предлагает несколько предложений по решению этой проблемы .