Как импортировать 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.