Я пытаюсь клонировать большой (1,4 ГБ) Git-репозиторий на 32-битную виртуальную машину Debian с 384 МБ ОЗУ. Я использую Git 1.7.2.5 и использую протокол SSH для клонирования ('git clone user@host.com: / my / repo')
Клон завершается с этим сообщением:
remote: Counting objects: 18797, done.
remote: warning: subobtimal pack - out of memory
remote: Compressing objects: 100% (10363/10363), done.
fatal: out of memory, malloc failed (tried to allocate 905574791 bytes)
fatal: index-pack failed
Я попытался уменьшить объем памяти, используемой Git для перепаковки на конце репозитория хоста, и перепаковать:
git config pack.windowMemory 10m
git config pack.packSizeLimit 20m
git repack -a -d
Мои вопросы следующие:
- Это проблема размера клиента (на стороне клона) или она должна быть решена в репозитории, из которого я клонирую?
В любом случае, что я могу сделать, чтобы клон преуспел? Многие потенциальные решения онлайн включают некоторые / все из следующих вещей, ни одно из которых не является приемлемым в этом случае:
- существенное изменение содержимого репозитория (т.е. удаление больших файлов)
- давая ВМ, которая делает клон больше ОЗУ
- предоставление виртуальной машине, выполняющей клон, 64-разрядного виртуального процессора
- передача вне диапазона (например, с помощью Rsync или SFTP для передачи каталога .git)
Заранее спасибо.