LINUX.ORG.RU

Помогите разобраться поведением команды git clone

 ,


0

2

Существует такая штука как openSUSE Kernel Git. Прочитав о нём новость на opennet.ru ещё в 2008 году, я хотел скомпилировать его, и я уже не помню, почему я этого не сделал. Попробовав это сделать сегодня на работе в свободное время, я вспомнил причину, почему мне это не удалось сделать в 2008-м! Потому что у меня был 64-килобитный безлимитный Интернет! И после обрыва связи GIT отказывался загружать дальше, и каждый раз загружал снова!

Итак, я на работе, Интернет с помощью устройства USB-3G-модем, оператор мобильной связи «МТС». Процентов 60 загружалось со скоростью 1 мегабит в секунду, после этого заработало ограничение скорости (снова в 64 килобита). Затем связь прервалась:

$ git clone git://gitorious.org/opensuse/kernel-source.git
Cloning into kernel-source...
remote: Counting objects: 233415, done.
remote: Compressing objects: 100% (77601/77601), done.
fatal: The remote end hung up unexpectedly15.05 MiB | 7 KiB/s
fatal: early EOF
fatal: index-pack failed

Только загрузилось не 15 МиБ, а 315 МиБ - почему-то вывод команды обрезан. Запускаю команду снова:

$ git clone git://gitorious.org/opensuse/kernel-source.git
Cloning into kernel-source...
remote: Counting objects: 233415, done.
remote: Compressing objects: 100% (77601/77601), done.
q^Ceiving objects:   0% (1134/233415), 260.00 KiB | 7 KiB/s

Почему он начал загружать заново? Можно ли сделать так, чтобы GIT доскачивал, а не начинал загрузку заново? Например, wget продолжает скачивание файла, если добавить опцию -c.

В Гите нет докачки. Смирись.

panter_dsd ★★★★ ()

Можно ли сделать так, чтобы GIT доскачивал, а не начинал загрузку заново?

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

O02eg ★★★★★ ()
Ответ на: комментарий от keyran

> Но ведь с гиториуса можно тарболл скачать тем же wget'ом

Дома, когда будет быстрый Интернет, так и сделаю. Спасибо всем ответившим!

ZenitharChampion ★★★★★ ()

Ещё вопрос. Загрузил всё, стал делать RPM, а он у меня попросил архив с linux-3.4-rc6 Что тогда он такого скачивал размером 800 Мб, если фактически понадобились только несколькокилобайтные патчи? Как в следующий раз сказать GIT, чтобы он загружал только патчи?

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

git clone выкачивает ВЕСЬ репозиторий. Вместе со всеми изменениями и всеми ревизиями начиная с самого основания проекта.

Чтобы скачать только последнюю - git clone --depth 1.

reserved ()

Можно сделать git clone где есть быстрый интернет, а потом, если надо обновлять, git pull

А качать по медленному или дорогому интернету не надо - зачем вообще время тратить?..

BattleCoder ★★★★★ ()
Ответ на: комментарий от reserved

Спасибо! Так гораздо лучше. Вот теперь - точно «статус: решено».

ZenitharChampion ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.