Рекомендации по использованию 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.

Ответ 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 без сопровождения вверх по течению.