Для того, чтобы удалить какой-либо файл из репозитория CVS, необходимо удалить этот файл из песочницы:
oleg@localhost:~/sandbox/linuxcookbook:$ \
> rm content/manpagesprint.html
rm: удалить обычный файл `content/manpagesprint.html`? y
Затем следует выполнить команду remove:
oleg@localhost:~/sandbox/linuxcookbook:$ \
> cvs remove content/manpagesprint.html
cvs remove: scheduling `content/manpagesprint.html` for removal
cvs remove: use `cvs commit` to remove this file permanently
При выполнении команды commit файл будет перемещен в специальный подкаталог с именем Attic. Это сохраняет полную историю всех операций с файлами и обеспечивает возможность восстановления файла в дальнейшем:
oleg@localhost:~/sandbox/linuxcookbook:$ \
> cvs commit -m `Deleting file` content/manpagesprint.html
Removing content/manpagesprint.html;
/home/oleg/cvsroot/linuxcookbook/content/manpagesprint.html,v <-- manpagesprint.html
new revision: delete; previous revision: 1.1.1.1
done
Следующая команда показывает место расположения удаленного файла:
oleg@localhost:~:$ ls -l ~/cvsroot/linuxcookbook/content/Attic/
итого 4
-r--r--r-- 1 oleg users 3621 2008-11-06 13:58 manpagesprint.html,v
Удаление файла из песочницы и репозитория можно выполнить одной командой:
oleg@localhost:~/sandbox/linuxcookbook:$ \
> cvs remove -f content/manpagesprint.html
Каталоги невозможно удалить так, как удаляются файлы. Для предотвращения копирования пустых каталогов в песочницу в командах update и checkout следует использовать ключ -P.
Следует помнить, что CVS никогда ничего не удаляет полностью. Основной целью ее является поддержание полной истории проекта.