Как импортировать CVS в git scm?

Чтобы импортировать ревизию модуля CVS, я использую:

/usr/lib/git-core/git-cvsimport -a -i -p r,revisionname -k -v -d :pserver:user@xxx.com:2401/srv/cvs/rootname modulename

Это работает какое-то время, а затем я получаю что-то вроде cvsps получил ошибку. Как мне определить ошибку cvsps?

3 ответа

Решение

Отказались от этого подхода и использовали cvs2git,

cvs2git это инструмент, который можно использовать для переноса репозиториев CVS на новые инструменты контроля версий, включая git.

Пример использования:

cvs2git \
    --blobfile=cvs2git-tmp/git-blob.dat \
    --dumpfile=cvs2git-tmp/git-dump.dat \
    --username=cvs2git \
    /path/to/cvs/repo

Вы можете понизить его до cvsps-2.1 и перепроверить, как git cvsimport не работает с cvsps-3.xпотому что у него другой синтаксис.

На OSX можно (имея brew):

brew tap homebrew/versions
brew install cvsps2
brew unlink cvsps
brew link --overwrite cvsps2

С http://git-scm.com/docs/git-cvsimport

ВНИМАНИЕ: git cvsimport использует версию 2 cvsps, которая считается устаревшей; это не работает с версией 3 cvsps и позже. Если вы выполняете однократный импорт хранилища CVS, попробуйте использовать cvs2git или parsecvs.

Проверьте, есть ли у вас версия 3 cvsps или позже

$ cvsps --version

Если вы можете понизить его до версии 2 cvsps, все готово.

Основное отличие cvs2git не является инкрементным (за исключением использования этого временного решения), поэтому он предназначен для однократной проверки. С cvsimport Вы можете делать инкрементные обновления и оставаться в курсе репозитория cvs.

Сначала попробуйте cvs-fast-export:

http://www.catb.org/esr/cvs-fast-export/

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

Не используйте git-cvsimport или любую другую версию cvsps - они ужасно отстойны и, вероятно, потеряют место соединения вашей ветки. Я был человеком, ответственным за выпуск cvsps-3.x; Я углубил этот код в пользу того, что стало cvs-fast-export.

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