Создание файлов из других систем контроля версий

Если у вас есть проект, который обслуживается другой системой контроля версий, например, RCS, вы можете захотеть поместить эти файлы под управление CVS и сохранить историю изменения этих файлов.

Из RCS

Если вы использовали RCS, то найдите все файлы RCS — обычно файлу foo.c будет соответствовать файл RCS/foo.c,v (этот файл может также находиться в другом месте, обратитесь к документации на RCS. Затем создайте соответствующие каталоги в CVS, если они еще не существуют. Затем скопируйте файл в соответствующие каталоги в репозитории (имя в репозитории должно совпадать с именем исходного файла с добавлением суффикса ',v'; файлы находятся прямо в соответствующем каталоге репозитория, а не в подкаталоге RCS/. Это — один из редких случаев, когда желателен прямой доступ к репозиторию, без использования команд CVS. Теперь вы можете извлечь новый рабочий каталог. Файл RCS не должен быть заблокирован, когда вы перемещаете его под управление CVS, иначе у CVS будут проблемы при работе с этим файлом.

Из другой системы контроля версий

Многие системы контроля версий способны экспортировать файлы RCS в стандартном формате. Если ваша система умеет так делать, экспортируйте файлы RCS и следуйте вышеприведенным инструкциям. Если это не так, вероятно, лучшим выходом будет написать скрипт, который извлекает каждую ревизию файла, используя интерфейс командной строки старой системы, а затем фиксирующий эти ревизии в CVS. Скрипт sccs2rcs, упомянутый ниже, является хорошим примером.

Из SCCS

В каталоге 'contrib/' среди исходных текстов CVS есть скрипт sccs2rcs, конвертирующий файлы SCCS в файлы RCS. Замечание: вы должны выполнить этот скрипт на машине, на которой установлен как SCCS, так и RCS, и этот скрипт не поддерживается.

Из PVCS

В каталоге contrib/ среди исходных текстов CVS есть скрипт pvcs_to_rcs, преобразующий архивы PVCS в файлы RCS. Вы должны выполнить этот скрипт на машине, на которой установлены как PVCS, так и RCS, и как и все прочее в каталоге contrib/, этот скрипт не поддерживается. Детали описаны в комментариях к скрипту.