LINUX.ORG.RU
ФорумTalks

[git][несправедливость] Это криворукость или так и надо?

 ,


0

2

Почему все билд-скрипты (например, PKGBUILD-ы в арче) тянут себе весь git-репозиторий, а не просто последнюю/нужную ревизию?

Я понимаю, что если нужно что-то обновить, то с репозиторием это делать легче. Но йогурт, мать его, всё равно удаляет исходники пакетов после сборки! Ну и зачем ему тогда нужен был весь репозиторий?

Для примера: снапшот WebKit-а весит около гига, а репозиторий — все четыре.

Да, я понимаю, что в гите экспорт делается нетривиально, но это не повод. Кстати — почему нету алиаса вроде «git export репозиторий коммит|тэг|ветка»?

Кто в танке, сама команда вот:

git archive --format=tar --remote=git://example.org/my-super-project master | tar -xf -

Оно работает со всем, в т.ч. bare-репозиториями.

★★★★★

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

Портадж лучше. Ибо сам дух дистра заточен под сборку, в отличии от бинарного арчика.

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

Тэга [арчесрач] не было, был тэг [git].

Почему для этой команды нету алиаса git export?

ChALkeR ★★★★★
() автор топика

Но йогурт, мать его, всё равно удаляет исходники пакетов после сборки!

УМВР.

~$ ll /var/abs/local/yaourtbuild/
total 96
drwxr-xr-x 24 bobrov users 4096 Oct 13 12:22 .
drwxr-xr-x  3 bobrov users 4096 Nov 29  2009 ..
drwxr-xr-x  5 bobrov users 4096 May 24  2010 aegisub
drwxr-xr-x  5 bobrov users 4096 Nov 29  2009 bash4-completion-git
drwxr-xr-x  4 bobrov users 4096 Oct 15  2010 dmenu-hg
drwxr-xr-x  4 bobrov users 4096 Oct 18  2010 ffcast
drwxr-xr-x  4 bobrov users 4096 May 18 15:28 gocode-git
drwxr-xr-x  4 bobrov users 4096 Nov 29  2010 gtk-engine-murrine-git
drwxr-xr-x  4 bobrov users 4096 Jan 27  2011 gtkparasite-git
drwxr-xr-x  4 bobrov users 4096 Aug 11 20:04 io-git
drwxr-xr-x  4 bobrov users 4096 Oct 15  2010 libdraw-hg
drwxr-xr-x  4 bobrov users 4096 Dec  8  2010 libdrm-git
drwxr-xr-x  4 bobrov users 4096 Jan 12  2011 mc-git
drwxr-xr-x  2 bobrov users 4096 Aug  1 19:29 mesa-full-i915g
drwxr-xr-x  4 bobrov users 4096 Oct 16 21:53 powertop-git
drwxr-xr-x  4 bobrov users 4096 Jun 16 19:21 pycairo-xcb-git
drwxr-xr-x  4 bobrov users 4096 Apr 25  2011 rodentbane-git
drwxr-xr-x  4 bobrov users 4096 Oct 29  2010 screenie-git
drwxr-xr-x  4 bobrov users 4096 Dec  8  2010 sfml2-svn
drwxr-xr-x  4 bobrov users 4096 Oct 13 12:22 stgit-git
drwxr-xr-x  4 bobrov users 4096 Oct 10 05:09 sunflower-hg
drwxr-xr-x  4 bobrov users 4096 May 18 15:25 wmfs-git
drwxr-xr-x  4 bobrov users 4096 Jun 16 19:19 xpyb-git
drwxr-xr-x  4 bobrov users 4096 Apr 12  2011 youtube-viewer
baverman ★★★
()
Ответ на: комментарий от dismal_faun

Не знаю откуда он, может хотел сырцы глянуть, не помню уже. Так сижу на aegisub-bin 2.1.8

baverman ★★★
()

git archive --format=tar

ты хочешь, чтобы ресурсы сервера тратились на создание тебе тарболлов на каждый чих?

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

Удобнее, потому что разрабу не надо перекачивать весь репос заново при каждом makepkg. Можно написать какой-нибудь if, который будет как-то разруливать сабж и потребности разрабов, но как-то лень...

shahid ★★★★★
()

И, да, в pkgsrc в этом плане всё шоколадно. :)

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

Если у тебя до сих пор не появилась мысль узнать про него, то я открыл документацию за тебя:

$ man git-clone | grep shallow -A3 -B1
       --depth <depth>
           Create a shallow clone with a history truncated to the specified number of revisions. A shallow repository has a
           number of limitations (you cannot clone or fetch from it, nor push from nor into it), but is adequate if you are
           only interested in the recent history of a large project with a long history, and would want to send in fixes as
           patches.
kim-roader ★★
()
Ответ на: комментарий от stevejobs

Интересно, на что больше ресурсов сервера потратится: на создание тарболла или на передачу 4 гигов вместо одного?

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

Возможно. И его потом можно обновить, как я понимаю.

Но тогда вообще непонятно: зачем все pkgbuild-ы вытягивают всю историю ревизий?

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

Кстати, что это за шутка такая про «создание тарболла»?

Или ты имеешь ввиду «создание файлов из bare-репозитория»?

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

Да нормально. Выставил --depth 1 для пары PKGBUILD: bitcoin-git -30%, solandra-git -50%. Уже хорошо, имхо.

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

Есть одна особенность, shallow clone вытягивает все бранчи, поэтому для больших проектов (а в них, как правило, туча разработчиков и каждый со своей историей и все в одной репе) — да, несколько грустновато.

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

> Портадж лучше.

а палудис (paludis) еще лучше, и что теперь - пользоваться им что-ли?

StrongDollar
()

бобёр выдыхай

cd $srcdir
        if [ -d $_gitname ]; then
            cd $_gitname && git pull origin
            msg "The local files are updated."
        else
            git clone --depth=1 $_gitroot $_gitname
        fi

взято с вики арча, но кто ж читает вики =) ? ну и man git clone

--depth <depth>
           Create a shallow clone with a history truncated to the specified number of revisions. A shallow repository has a number of limitations (you cannot clone or
           fetch from it, nor push from nor into it), but is adequate if you are only interested in the recent history of a large project with a long history, and would
           want to send in fixes as patches.

и да, тред даже не читал

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

Если прочитаешь, то поймёшь, что --depth уже обсуждался и он не всегда крут. Хотя с ним всяко лучше, чем без него.

И да, вики не читает никто, судя по пакетам.

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