Один из моих коллег полностью испортил содержимое каталога в нашем основном репозитории CVS. Мне нужно просто вернуть весь модуль в состояние, в котором он был в конце прошлого года. Какая команда CVS делает это, пожалуйста?
Он добавил и удалил сотни файлов, поэтому простого «копирования файлов из старого извлечения и фиксации» недостаточно.
У меня есть RTFM и STFW, и я пробовал это:
cvs co modulename # Note no -P option
cvs up -jHEAD -jMAIN:2008-12-30 modulename
Но это не работает - новые файлы, которые он создал, удаляются, но старые файлы и каталоги не восстанавливаются. (Я этого не совершал).
Я, вероятно, могу написать для этого сценарий оболочки, но, конечно же, эта функция уже должна быть в CVS?
Обновление: некоторые пояснения:
Я могу получить локальную проверку модуля в определенную дату. Вопрос в том, как вернуть это в CVS.
У меня есть резервные копии, но смысл использования системы контроля версий, такой как CVS, заключается в том, что она должна обеспечивать легкое получение любого исторического состояния. В следующий раз, когда произойдет что-то подобное, мне, возможно, не повезет с резервными копиями (например, резервное копирование выполняется ежедневно, поэтому я могу потерять до одного дня работы).
Я знаю, что CVS устарела, и нам следует перейти на что-то более новое. Но в большой команде с большим количеством инструментов на основе CVS (сценарии проверки и сборки, сервер ночной сборки и т. Д.) Временные затраты на такой переход значительны. (Оценка, обновление скриптов, тестирование, миграция, обучение, потеря времени разработчика, параллельное обслуживание обеих систем, поскольку для старых веток по-прежнему потребуется CVS). Следовательно, это должно быть запланировано и запланировано руководством.
Обновление №2: Я собираюсь объявить за это вознаграждение. Чтобы претендовать на награду, вы должны объяснить, как вернуться с помощью обычных команд CVS, а не с помощью сценария взломанной оболочки.
Обновление № 3: это сервер CVS 1.12.13. Доступ через pserver. Я могу использовать ту же версию CVS на ПК с Linux или клиент CVSNT 2.0.51d на Windows.