Отслеживание прогресса Git при извлечении / выборке

#git #git-fetch

#git #git-fetch

Вопрос:

Вот моя проблема:

Когда я выполняю извлечение из какого-либо большого репозитория, я хочу показывать прогресс где-то еще, кроме консоли (например, на веб-сайте) Я знаю, что в git 1.7.1.1 есть опция —progress, но я не могу использовать эту версию и должен оставаться с 1.6.0.4

у кого-нибудь есть идеи, как отслеживать прогресс git fetch / pull (например, как извлечь текущий процент загрузки)

Ответ №1:

Я не уверен, как это можно было бы сделать, поскольку опция —progress была реализована в upload-pack.c

И git upload-pack упоминает

Вызываемый git fetch-pack , узнает, каких объектов не хватает на другой стороне, и отправляет их после упаковки.

Эта команда обычно не вызывается конечным пользователем напрямую.
Пользовательский интерфейс для протокола находится на git fetch-pack стороне, и программная пара предназначена для извлечения обновлений из удаленного репозитория.
Об операциях push см. в разделе git send-pack.

Поэтому, если сервер не отправляет обратно такого рода данные, я не знаю, как извлечь их напрямую, кроме как проверив этот комментарий в upload-pack.c

     /* We read from pack_objects.err to capture stderr output for
     * progress bar, and pack_objects.out to capture the pack data.
     */
  

Если у вас есть доступ к pack_objects.err на стороне сервера, вы могли бы (возможно) получить из этого некоторую информацию.