Один из моих коллег полностью испортил содержимое каталога в нашем главном хранилище 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.