LINUX.ORG.RU

Загрузить конкретный коммит из GIT-репозитория

 


0

2

Как загрузить конкретный коммит GIT-репозитория, не загружая его весь? Например с этого URL git://gitorious.org/opensuse/kernel-source.git этот коммит 3811b6910313cc9564c3e893d6ba75645ee38a6b. По теме нашёл это и это. Кроме того скачал программы qgit и kgit, но не разобрался в них. Команда из первой статьи:

git archive -o repo.tar --remote=git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git ee9c5cfad29c8a13199962614b9b16f1c4137ac9

не работает:

fatal: You must specify an archive format

Да и что это за удаление гланд через задницу: с обычным git clone скачать нужный коммит нельзя, а с git archive, значит, можно?! Подстановка "--format=tar" выдаёт:

fatal: 'tar' format does not handle -o

Убирание "-o repo.tar" даёт минутное ожидание без интернет-трафика, и:

git archive --format=tar --remote=git://gitorious.org/opensuse/kernel-source.git 3811b6910313cc9564c3e893d6ba75645ee38a6b
fatal: unexpected EOF

Да как скачать-то его?! С SVN было проще: открываешь kdesvn, вводишь URL, вводишь дату либо номер коммита. Всё.

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 3)

Как загрузить конкретный коммит GIT-репозитория, не загружая его весь?

/0

этот коммит 3811b6910313cc9564c3e893d6ba75645ee38a6b

Что получить-то в итоге надо?

qgit и kgit

Закопать.

Deleted
()

Что-то здесь не чисто

$ git archive --remote='git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git' ee9c5cfad29c8a13199962614b9b16f1c4137ac9
fatal: The remote end hung up unexpectedly

KennyMinigun ★★★★★
()

По-моему git по умолчанию использует tar. Может попробовать что-то типа:

git archive --remote=git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git ee9c5cfad29c8a13199962614b9b16f1c4137ac9 | bzip2 > archive.tar.bz2
?

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

Да уж. Так и не понял что это значит. Скачивается архив и командой bzip2 распаковывается? Или наоборот, скачивается не архив и надо запаковать? Если второй вариант, то можно ли обойтись без второй команды?

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от Deleted

«Не загружая его весь» означает «не загружать репозиторий весь: всю историю изменений». Просто git clone загружает 850 Мб вместо 20 Мб, почему-то. Я заводил темы об этом: 1, 2. А надо чтобы был репозиторий по состоянию на тот момент. И ничего лишнего. Насчёт «закопать»: критикуя - предлагай.

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

А чем git clone --depth 1 не устраивает?

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

Запаковывается.

то можно ли обойтись без второй команды?

Конечно можно - будет архив без сжатия, вестимо

KennyMinigun ★★★★★
()
git archive --help
--format=<fmt> Format of the resulting archive: tar or zip. If this option is not given, and the output file is specified, the format is inferred from the filename if possible (e.g. writing to "foo.zip" makes the output to be in the zip format). Otherwise the output format is tar.
yvv ★★☆
()
21 ноября 2013 г.

Установил RPM-пакеты ядра 3.11 с OBS Kernel:Stable. Установились и работают, но установщик драйвера NVIDIA говорит «ядро скомпилировано GCC 4.8, а в твоей системе GCC 4.7, поэтому ядро 2.6 и новее отклонит драйвер». Открываю OBS Devel:GCC - для openSUSE 12.2 нет GCC 4.8. Ну что ж, решил пересобрать ядро. OBS делать это не хочет, так что буду собирать вручную. Шестиядерник же.

Вопрос. Как скачивать нужный коммит? В «master» 3.12. На этот раз я хочу openSUSE Kernel GIT с ядром 3.10, потому что у NVIDIA с 3.11 и 3.12 проблемы. Вот этот коммит:

https://gitorious.org/opensuse/kernel-source/commit/16a6c33ca65b80855ce939197be6b7ce361debb1

К которому я доложу последние патчи этой Long Time Support версии ядра. Как это сделать? Пробовал по совету tailgunner:

https://gitorious.org/opensuse/kernel-source/archive/16a6c33ca65b80855ce939197be6b7ce361debb1.tar.gz

По ссылке ошибка «Repository is too big».

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 2)
31 августа 2014 г.
Ответ на: комментарий от ZenitharChampion

Просто git clone загружает 850 Мб вместо 20 Мб, почему-то.

Тоньше надо быть и не хранить в гите порнокартинки высокого разрешения.

iVS ★★★★★
()
Последнее исправление: iVS (всего исправлений: 1)
Ответ на: комментарий от EXL

Тогда извиняюсь. Мне тут пришлось клонировать репозиторий мегабакса test, так 250 МБ! Павбывавбы!

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