LINUX.ORG.RU

Git: имея актуальную копию хранилища, как экономно стянуть его форк?

 ,


0

3

Здравствуй, ЛОР.

Вот, допустим, наткнулся я на просторах Сети на такой репозиторий:

https://github.com/dkogan/emacs-snapshot

И сказано там, что «This branch is 113 commits ahead, 30 commits behind emacs-mirror:master».

emacs-mirror — это зеркало репозитория ГНУ Емакса на «Саванне». Весит оно, как я вижу по локальной копии, гигабайта полтора.

Я могу что-нибудь сделать, чтобы заполучить себе копию github.com/dkogan/emacs-snapshot, не стягивая с Гитхаба все полтора гигабайта?

Простейшее:

emacs$ git remote add --tags dkogan git://github.com/dkogan/emacs-snapshot
emacs$ git fetch dkogan

запускает загрузку по полной.

★★★★★

Тебе нужно только для сборки? Тогда используй --depth 1, и оно скачает одну текущую версию, без истории коммитов.

Khnazile ★★★★★
()

Удваиваю noomorph

wget https://github.com/юзер/репа/archive/ветка.zip

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

«Clone or download» > «Download ZIP»?

Это же просто снимок, не?

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

git pull в оригинальный source code (хотя лучше все-таки в отдельный бранч, созданный с него)

Инкрементирую

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

Тебе нужно только для сборки?

Не знаю.

Вы все хотите сказать, что то, о чем я спрашиваю, — это и впрямь в Гите не реализовано, а не я чего-то не догоняю?

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

anonymous_sama>> git pull в оригинальный source code feofan> Инкрементирую

?

pull — это же, грубо говоря, fetch && merge? Чем это поможет?

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

Нет, конечно, не помогло — пошла полная загрузка.

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

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

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

Нету простого способа это сделать

Отлично.

А просветите, что такого товарищ Коган собственно сделал с хранилищем, что это перестало быть возможным?

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

А что там в другом Интернете, чего нет в этом?

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

что такого товарищ Коган собственно сделал с хранилищем, что это перестало быть возможным?

anonymous_sama, переименовал ветки?

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

Вообще я знаю костыльный способ, но он сработает только с github. Для этого тебе нужно найти emacs-mirror, сделать его форк. Потом сделать форк emacs-snapshot. Потом сделать pull request в emacs-mirror и по ссылке https://patch-diff.githubusercontent.com/raw/yourusername/emacs-mirror/pull/p... скачать патч с изменениями.

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

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

anonymous_sama ★★★★★
()

Попробовал выполнить. Нормально скачалось. 1 Гб с emacs-mirror и 100 Мб с emacs-snapshot.

$ Projects > git clone git@github.com:emacs-mirror/emacs.git
Cloning into 'emacs'...
remote: Counting objects: 788533, done.
remote: Compressing objects: 100% (132/132), done.
remote: Total 788533 (delta 89), reused 18 (delta 18), pack-reused 788383
Receiving objects: 100% (788533/788533), 1.00 GiB | 3.28 MiB/s, done.
Resolving deltas: 100% (634908/634908), done.
$ Projects > cd emacs/
$ emacs (master)> git remote add dkogan git@github.com:dkogan/emacs-snapshot.git
$ emacs (master)> git fetch dkogan 
remote: Counting objects: 502149, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 502149 (delta 7210), reused 7210 (delta 7210), pack-reused 494935
Receiving objects: 100% (502149/502149), 112.64 MiB | 3.96 MiB/s, done.
Resolving deltas: 100% (357140/357140), completed with 810 local objects.
From github.com:dkogan/emacs-snapshot

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

О! Вот спасибо.

Выходит это я где-то накосячил. Пойду перепроверять.

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