Ответ 1
Я написал ответ на аналогичный вопрос здесь.
Это работает удивительно хорошо, когда вы вынуждены продолжать вносить изменения в центральный репозиторий CVS.
Каковы ваши лучшие практики и советы по использованию git для взаимодействия с репозиторием CVS?
Я написал ответ на аналогичный вопрос здесь.
Это работает удивительно хорошо, когда вы вынуждены продолжать вносить изменения в центральный репозиторий CVS.
Я работал только с Git -CVS взаимодействиями с демонстрацией Git для друга, но это было очень просто.
cvsps
. Git cvsimport
использует это для доступа к истории CVS.Мы обнаружили, что для большого проекта установочная настройка была намного быстрее, взяв полную копию репозитория CVS на ваш компьютер и выполнив Git cvsimport
локально:
$ rsync rsync://yourprojecthost.com/cvsroot/yourproject/*
$ mkdir myproject.git
$ cd myproject.git
$ git cvsimport -p -x -v -d :local:/path/to/cvsroot/yourproject
Обратите внимание, что значение -x после -p очень важно. Это проходит от -x до cvsps. Для получения дополнительной информации см. страница cvsps.
Я написал детали своего собственного рабочего процесса для удаленных CVS, локальных Git
Слегка мета-ответ. Если вы вынуждены использовать стиль guerilla git, то есть ваша компания застряла с использованием cvs для управления версиями, и вы используете git на своей рабочей станции, чтобы облегчить жизнь, вы можете подумать о том, чтобы сделать что-то вроде этого:
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' и включение его пути перед реальной командой CVS. В противном случае вы можете git совершить старое, чем cvs, что не так полезно...
Если восходящий поток составляет 100% в CVS (например, OpenBSD или многие из его подпроектов, таких как mdocml или ports-readmes), и особенно если он как ржавый, как дерево CVS OpenBSD (например, иногда даже переписывая историю), я считаю весьма полезным просто совершить лежащих в основе CVS/{Entries,Repository,Root}
файлов непосредственно в моем репозитории git
.
Это упрощает работу с несколькими независимыми рабочими пространствами, позволяет проверять с помощью git
на любом компьютере, а затем cvs up
на месте или cvs diff
для создания правильных патчей CVS для отправки по почте git без сопровождения вверх по течению.