Я написал ответ на аналогичный вопрос здесь .
Это работает удивительно хорошо, когда вы вынуждены продолжать вносить изменения в центральный репозиторий CVS.
Я работал только с Git-CVS-взаимодействием с демо Git для друга, но это было очень просто.
cvsps
. $ rsync rsync://yourprojecthost.com/cvsroot/yourproject/* $ mkdir myproject.git $ cd myproject.git $ git cvsimport -p -x -v -d :local:/path/to/cvsroot/yourproject
использует это для доступа к истории CVS.Мы обнаружили, что для крупного проекта, встроенная настройка была намного быстрее, взяв полную копию репозитория CVS на ваш компьютер и выполнив CVS=realCvsPath # commit to the git first if ($ARGV[0] && $ARGV[0] eq "commit") { system 'git commit -a'; } # execute the appropriate cvs program # =================================== exec "$CVS", @ARGV
локально:
CVS/{Entries,Repository,Root}
Обратите внимание, что значение -x после -p очень важно. Это проходит от -x до cvsps. Для получения дополнительной информации см. Справочную страницу cvsps .
Я написал подробности своего собственного рабочего процесса для удаленных CVS, локальных Git
Немного мета-ответ. Если вы вынуждены использовать git 'guerilla style', то есть ваша компания застряла с использованием cvs для управления версиями, и вы используете git на своей рабочей станции, чтобы сделать жизнь проще, вы можете подумать о том, чтобы сделать что-то подобное;
git
Вызов этого файла «cvs» и включение его пути перед реальной командой CVS. В противном случае у вас может быть git commits старше, чем cvs, что не так полезно ...
Если восходящий поток составляет 100% в CVS (например, OpenBSD или многие из его подпроектов, таких как mdocml или ports-readmes ), и особенно если он такой же ржавый, как дерево CVS OpenBSD (например, иногда даже с переписью истории), я нахожу весьма полезно просто передать основные git
файлы непосредственно в мой git
репозиторий.
Это упрощает работу с несколькими независимыми рабочими пространствами, позволяет проверять их git
на любой машине, а затем cvs up
на месте или cvs diff
создавать правильные патчи CVS для рассылки сторонним разработчикам без ссылки.