С помощью Git узнайте, есть ли новые обновления на пульте и сколько байт для загрузки - PullRequest
0 голосов
/ 05 сентября 2018

При звонке git fetch он сразу же скачает пакет.

Но мне нужно предварительно добавить один шаг - проверить наличие обновлений (узнать, доступно ли новое обновление) и, если возможно, получить список коммитов, которые будут загружены как git log master...origin/master до загрузки пакета.

Другими словами, я бы сказал: извлекать историю мерзавцев (журнал) без извлечения больших объектов .

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Вы не можете.

Хорошо, давайте изменим это: вы не можете, пока . Git 2.16 представил концепцию отсутствующих объектов и частичного клона , но остальная часть Git не совсем готова к этому. Но может быть такая особенность в какой-то момент.

Обратите внимание, что для того, чтобы это работало, вы должны были буквально получать (загружать) сами объекты фиксации. Тем не менее, каждый объект коммита довольно мал; для загрузки в большом файле пакета требуется место и время: базовые объекты больших двоичных объектов, а иногда и деревья, и (для больших репозиториев с миллионами тегов) список ссылок и их хэш-идентификаторы. Этот последний также рассматривается, по крайней мере частично, в последней версии Git, которая поддерживает новые версии протокола передачи.

Очевидный способ сделать эту работу сегодня состоит в том, чтобы отправка Git сообщала вам, что вы хотите знать, но вы исключили эту идею в комментарии . (Обратите внимание, что это не обязательно должна быть веб-страница , просто доступный сервис. Просто сегодня «доступный сервис» обычно интерпретируется как означающий «веб-страница».)

0 голосов
/ 05 сентября 2018

Вы можете использовать git ls-remote, чтобы проверить, изменились ли ссылки на пульте дистанционного управления, и, следовательно, необходима выборка / извлечение.

Вы можете использовать git fetch --dry-run, чтобы получить некоторые детали

...