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