Как я могу импортировать файл дампа 72 ГБ в git?

Я перенес старый репозиторий cvs с помощью cvs2git (cvs2svn). Полученный файл дампа теперь имеет размер 72 ГБ, и мои попытки импортировать дамп с помощью git fast-import всегда терпят неудачу из-за ошибки нехватки памяти:

фатальный: недостаточно памяти, malloc не удалось (попытался выделить 6196691 байт)
быстрый импорт: выгрузка отчета о сбое в fast_import_crash_13097
ошибка: git-fast-import умер от сигнала 11

В результате моя система имеет 32 ГБ оперативной памяти и 50 ГБ подкачки. Я запускаю импорт в Red Hat 5.3 с Git 1.8.3.4 (gcc44, python2.6.8, cvs2svn2.4.0). Я также пытался ограничить размер стека и файловые дескрипторы, но ошибка памяти все еще существует.

У кого-нибудь есть идеи?

2 ответа

Идея состоит в том, чтобы:

Затем вы должны импортировать репозитории cvs (sub) в отдельные репозитории git.
Поскольку git распространяется, а не централизован, вы хотите сохранить размер каждого git-репо разумным.

Я тоже столкнулся с той же проблемой, но теперь она решена. Пожалуйста, скачайте последнюю версию cvs2svn, в которой есть исправление, позволяющее значительно уменьшить размер дампа. Это уменьшает метаданные для фиксации символов. Версия cvs2git версии 2.5 или новее.

(Вы можете просмотреть изменения, сделанные в https://github.com/mhagger/cvs2svn/commit/fd177d0151f00b028b4a0df21e0c8b7096f4246b)

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