Как мне синхронизировать CVS и git-репозиторий?Какой сценарий поможет мне справиться с этим? - PullRequest
3 голосов
/ 09 марта 2012

Да, я знаю, что мне следует отказаться от CVS, но это не мое решение, и CVS некоторое время будет присутствовать из-за «устаревшей» поддержки.Тем не менее, я считаю, что шаг 1 - показать репозиторий в git-контексте.По этой причине я сначала хотел бы просто синхронизировать CVS -> «только для чтения» Git.

Затем я могу вручную внести изменения в репозиторий git обратно в CVS.

Какие инструменты можно использоватьсделать это?Какой лучше?Что не может быть сделано (я полагаю, что все материалы CVS можно перенести в Git, и мне не нужно систематически делать обратное).

Спасибо!

1 Ответ

3 голосов
/ 09 марта 2012

На это уже есть несколько ответов: здесь , например. Я использовал git, встроенный в cvsimport, для нескольких небольших несложных репозиториев, и это прекрасно работает. Но вы должны тщательно проверить (или сделать так, чтобы ваш скрипт). В одном большом репозитории я обнаружил ошибки при конвертации, когда файлы были удалены из CVS, и это не удалось отразить в зеркале git. Также оказалось, что он не может корректно импортировать ветки поставщиков из CVS.

В конце концов я нашел cvs2git более надежным. Однако этот инструмент не поддерживает пошаговые преобразования. Однако вы можете обойти это, выполнив полное преобразование cvs2git, а затем отправив результат в текущее зеркало. Преимуществом этого является то, что ваши пользователи git могут выдвигать рабочие ветки, если это необходимо, если они не совершают коммиты на зеркальные ветви. Это работает хорошо уже около года в довольно большом хранилище (10 лет работы, полмиллиона LOC).

...