Я перенесла старый репозиторий cvs (около 13 ГБ) на git (около 2,7 ГБ). Но я не могу клонировать репо с моей 32-разрядной рабочей станцией. Я получаю ошибку из памяти (malloc не смог выделить около 6 МБ). Есть ли возможность исправить это?Как я могу клонировать git-репозиторий с 32-битной машиной?
remote: counting objects: 1227276, done.
remote: Compressing objects: 100% (217540/217540), done.
Receiving objects: 100% (1227276/1227276), 2,66GiB | 791.00KiB/s, done.
remote: Total 1227276 (delta 787852), reused 1227276 (delta 787852)
Resolving deltas: 100% (787852(787852), done.
fatal: Out of memory, malloc failed (tried to allocate 6838754 bytes)
fatal: remote did not send all necessary objects
Сервер: Rhel63 64bit; Wokstation: Win XP 32bit, 2GB RAM; Git: 1.8.3.4 на обоих.
Update1: Теперь я переупаковал файл большого пакета размером 2,8 ГБ на сервере в файлы большого пакета размером 500 МБ. Но на стороне клиента это не влияет на клон. Он создает только один файл большого пакета размером 2,8 ГБ. Как я могу описать процесс git clone для меньших пакетов-файлов пользователя или создать пакетные файлы по мере их размещения на сервере? - Интересный аспект для меня: размер получаемых объектов уменьшается до 1,5 ГБ.
Update2: Теперь, после некоторого исследования и анализа времени, я думаю, что основная проблема заключается в том, что процесс клонирования git не может обрабатывать один большой файл пакета на моей 32-разрядной рабочей станции. Но как я могу настроить процесс клонирования, чтобы получить несколько файлов с меньшим размером? На стороне сервера он отлично работает с командой repack
, но это не влияет на клиентскую сторону.
Обновление 3: Теперь у меня есть 1,6 ГБ большой годовой репо (с использованием git gc --aggressive --prune=now
). Но ошибка с отсутствием памяти все еще была. Поэтому я попытался разделить репо. Таким образом, я использовал git rm
с git commit -a
. Таким образом, размер обоих новых голых репозиториев равен старой центральной. Но теперь клонирование с рабочей станции действительно работает. Потребление памяти теперь постоянное < 300MB. Прежде чем он станет неостановимым.
Теперь мои вопросы: почему процесс клонирования теперь заканчивается без проблем?
Вы проверили некоторые другие подобные вопросы о настройке Git ?: http://stackoverflow.com/questions/10292903/git-on-windows-out-of-memory-malloc-failed/12808378#12808378 http: //stackoverflow.com/questions/7607970/git-clone-fails-with-out-of-memory-error-fatal-out-of-memory-malloc-failed https://github.com/gitextensions/gitextensions/issues/1632 –
Да, но это не могло мне помочь. Я добавил сообщение об ошибке, которое я получил, пытаясь скрыть клон. – user2451418
Теперь я пробовал несколько настроек конфигурации git, таких как'pack.packSizeLimit = 256m pack.windowMemory = 256m pack.deltaCacheSize = 256m core.packedGitLimit = 256m core.packedGitWindowSize = 256m transfer.unpackLimit = 100000', как предполагалось, в аналогичных сообщениях в Интернете , Но сообщение об ошибке все еще есть. Только размер был сжат с 6 до 4 мб, который git не может выделить. Я сделал конфигурацию на сервере, на стороне клиента, а также во время процесса клонирования. Но ничего не работает. – user2451418