Каковы ваши лучшие практики и советы по использованию git для взаимодействия с репозиторием CVS?
Рекомендации по использованию git с CVS
Ответ 1
Я написал ответ на аналогичный вопрос здесь.
Это работает удивительно хорошо, когда вы вынуждены продолжать вносить изменения в центральный репозиторий CVS.
Ответ 2
Я работал только с 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.
Ответ 3
Я написал детали своего собственного рабочего процесса для удаленных CVS, локальных Git
Ответ 4
Слегка мета-ответ. Если вы вынуждены использовать стиль 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, что не так полезно...
Ответ 5
Если восходящий поток составляет 100% в CVS (например, OpenBSD или многие из его подпроектов, таких как mdocml или ports-readmes), и особенно если он как ржавый, как дерево CVS OpenBSD (например, иногда даже переписывая историю), я считаю весьма полезным просто совершить лежащих в основе CVS/{Entries,Repository,Root}
файлов непосредственно в моем репозитории git
.
Это упрощает работу с несколькими независимыми рабочими пространствами, позволяет проверять с помощью git
на любом компьютере, а затем cvs up
на месте или cvs diff
для создания правильных патчей CVS для отправки по почте git без сопровождения вверх по течению.