Присоединиться к двум версиям истории в CVS (или RCS)?

Я ищу способ объединить две истории изменений для одного файла.

Один из наших проектов отслеживался через RCS. Сейчас этот проект живет в CVS. Первоначально он был задуман как новый проект. В результате история CVS не показывает более старые ревизии, которые были отслежены через RCS.

Например, предположим, что файл foo.c был пересмотрен 10 раз в RCS, а затем 2 раза в CVS. RCS имеет версии с 1.1 по 1.10, а CVS имеет версии 1.1, 1.2 и 1.3. RCS версии 1.10 и CVS версии 1.1 идентичны.

Я пытаюсь создать комбинированную историю, чтобы foo.c показывал 12 версий с 1.1 по 1.12. Поскольку CVS хранит ревизии в том же формате, что и RCS, нужно просто начать с существующего файла RCS, а затем проверить новые изменения с помощью команды "ci" (сохранение меток времени, идентификаторов пользователей и сообщений фиксации)., Любые теги CVS также должны быть сохранены. Этот новый файл RCS будет иметь полную историю, которую затем можно будет добавить в репозиторий CVS, заменив старую версию.

Предположим, что в этой кодовой базе нет ветвей. Просто прямая разработка.

Такая утилита уже существует?

2 ответа

Решение

Я только что написал библиотеку Python EditRCS ( PyPi) для работы с файлами RCS. Пример сценария rcs_join присоединяет первую ревизию одного файла RCS к заголовку другого и обновляет ветки и ревизии тегов.

Надеюсь, это делает то, что вы хотите (хотя, возможно, сейчас слишком поздно!)

Если это один файл и вам не нужно передавать большое количество ревизий, вы всегда можете извлечь из старой системы управления версиями одну ревизию за раз и зафиксировать это в новой системе управления версиями (большинство метаданных системы управления версиями могут сосуществовать в тот же каталог)… этот метод работает, конечно, независимо от того, что является системой управления версиями источника и назначения, и это то, что я лично сделал, когда у меня возникла проблема, аналогичная вашей.

Или вы можете попробовать инструмент Tailor, который может конвертировать из / во многие системы управления версиями, хотя я не знаю, может ли он также "объединить" две разные истории в одну, как вам нужно.

Другие вопросы по тегам