G-Web IT. Битрикс-интегратор. Сложный ecommerce и нестандартные интеграции. G-Web IT
Адрес: Летная улица, 30, корпус 1 141021 Мытищи,
Телефон:+7 985 513–06–60, Электронная почта: info@goldwebit.net
По будням с 10:00 до 20
Мы свяжемся с Вами максимально оперативно
+7 (985) 513-06-60

G-Web IT

+7 (985) 513-06-60 online-заявка

Заявка на услуги

Мы свяжемся с Вами максимально оперативно

Невозможно клонировать Git репозиторий, ошибка: "Resource temporarily unavailable"

Невозможно клонировать Git репозиторий, ошибка: "Resource temporarily unavailable"

При попытке клонировать существующий Git репозиторий с сервера, я получил вот такое сообщение:

remote: Compressing objects: 7% (88/1255) remote: fatal: unable to create thread: Resource temporarily unavailable remote: aborting due to possible repository corruption on the remote side. fatal: index-pack failed

Поиски в интернете подсказали причину и пути решения. Одна из возможных причин ошибки - это нехватка оперативной памяти для git, причем это не значит что памяти не хватает физически. Git сам ограничивает для себя оперативную память, которую может использовать, вот какие настройки рекомендуют сделать:

git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1" и/или git config --global pack.window "0"

Однако, это не помогло в моем случае, т.к.доступа к настройкам Git у меня не было. Для решения проблемы нужно было выкачать хранилище небольшими порциями. Для этого изначально, репозиторий был создан с ключем depth 1:

git clone --depth 1 ...

Чтобы докачать в репозиторий недостающую историю для Git версии больше 1.8.3. существует команда:

git fetch --unshallow

Но в данном случае она не помогла, т.к. выдавала аналогичную ошибку на стороне сервера.

Чтобы скачать историю изменений репозитория полностью, несколько раз была выполнена команда fetch с параметром --depth

git fetch --depth 1 git fetch --depth 2 git fetch --depth 3

И так до тех пор, пока в ответ не будет получено:

remote: Total 0 (delta 0), reused 0 (delta 0)

Это значит, что репозиторий успешно скачан, и с ним можно работать.

UPD: в следующий раз, когда столкнулся с этой проблемой, указанный способ решения уже не подошел, пришлось решать вопрос с добавлением следующих строк в настройки.

git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m"
git config --global pack.threads "1"

Получается, только это можно считать полноценным решением.


Возврат к списку