Что нужно cvs2git из хранилища CVS?

У меня есть большое хранилище CVS (~ 30 ГБ), и для преобразования одного модуля, используя cvs2git кажется, что все, что мне нужно, это:

  • каталог CVSROOT
  • каталог модуля

Разумеется, каталог модуля должен находиться в том же относительном местоположении, что и CVSROOT, как и в исходном репо.

Я заинтересован в этом, потому что я должен выполнить конвертацию на отдельной коробке, и я не хочу копировать весь репозиторий, если мне не нужно.

Первый вопрос: это все, что cvs2git нужно для преобразования одного модуля?

Второй вопрос: что именно делает cvs2git нужно из каталога CVSROOT? За много лет в каталоге CVSROOT накопилось много ненужных данных (сейчас он составляет около 2 ГБ), и я хотел бы копировать только те файлы, которые мне нужны.

2 ответа

Решение

Все, что вам нужно, это каталог модулей и каталог CVSROOT. Каталог CVSROOT должен присутствовать, но он может быть пустым; Например, было бы достаточно сделать "mkdir CVSROOT" в нужном месте.

Также даже не требуется, чтобы каталог модуля находился в том же относительном местоположении, что и CVSROOT, как и в исходном репо. Необходима только та часть структуры каталогов, которую вы хотите получить в результирующем репозитории git.

Поскольку cvs2git напрямую работает на уровне файлов. Это действительно не нужно намного больше, чем сам соответствующий модуль. Как сказал mhagger, CVSROOT необходим, но может быть пустым. Можно даже перемещать каталоги модулей и / или подкаталоги, объединять или разделять их, чтобы перенести их в новую структуру каталогов.

Я использовал это, чтобы присоединить несколько подключенных модулей к одному проекту git и переместить несколько больших и статических библиотек lib/ folder (двоичные данные) в отдельный подпроект git.

Другие вопросы по тегам