Этот способ также требует прямых изменений репозитория. Он безопасен, но не без подводных камней.
Копировать RCS-файл в репозитории
$ cd $CVSROOT/dir $ cp old,v new,v
Удалить старый файл
$ cd ~/dir $ rm old $ cvs remove old $ cvs commit old
Удалить все метки из new
$ cvs update new $ cvs log new
Запомнить все метки, не являющиеся именами веток
$ cvs tag -d tag1 new $ cvs tag -d tag2 new ...
Удалив метки, вы сможете извлекать старые ревизии.
Преимущества:
Извлечение старых ревизий работает корректно, если вы используете для извлечения ревизий ключ командной строки -rметка, а не -Dдата.
Журнал изменений остается в целости и сохранности.
Номера ревизий не искажаются.
Недостатки:
Нет способа легко увидеть историю файла до переименования.