Индикатор прогресса для git clone
можно ли получить индикатор выполнения при выполнении git clone
? Мне интересно, потому что в настоящее время я делаю клон git, который занял несколько минут, и было бы интересно узнать, скоро ли он закончится.
5 ответов
Не совсем так. Есть различные этапы git clone
:
- откройте для себя объекты, которые должны быть отправлены ("подсчет объектов: nnn")
- сжать и отправить эти объекты полученный пакет
- проверить полученные файлы
Этап 1 включает в себя прохождение через граф фиксации из каждой головки ветви, находя все коммиты и связанные объекты: поскольку нет никакой идеи заранее о том, сколько коммитов есть, прогресс в этом не поддается оценке. К сожалению, это часто, когда много времени в операции клонирования занимает.
Этап 2 имеет счетчик хода выполнения, хотя он подсчитывает объекты, а не объем (поэтому его скорость изменяется, особенно если РЕПО имеет большие капли)
этапы 3 и 4 имеют счетчики прогресса, хотя они обычно намного быстрее, чем предыдущие два этапа.
вы можете сделать:
du -s .git
для отслеживания изменений в размере временного контента, чтобы получить представление.
watch du -s .git
позволяет контролировать без необходимости повторного ввода команды. Что-то вроде однострочного ниже будет периодически давать вам скорость накопления данных в КБ в секунду:
delay=5; prev=`du -sk .git/ | cut -f 1`; sleep $delay; while true; do cur=`du -sk .git/ | cut -f 1`; expr \( $cur - $prev \) / $delay ; prev=$cur; sleep $delay; done
в настоящее время я делаю клон git, который занял несколько минут до сих пор, и было бы интересно узнать, скоро ли он закончится.
С Git 2.10 (Q3 2016),git clone --progress
будет более многословен.
посмотреть совершить 38e590e Джеффа Кинга (peff
)
(объединено Junio C Hamano в совершить a58a8e3 августа. 4-й 2016)
clone
: используйте реальный метр прогресса для проверка подключенияпотому что начальная проверка подключения для клонированного репозиторий может быть медленным,0781aa4 (
clone
: позволить пользователю знать, когдаcheck_everything_connected
запускается, 2013-05-03) добавлен a "поддельный" индикатор прогресса; мы просто говорим"Checking connectivity
" когда начнется, и"
возможно, вы захотите взглянуть на папку
$project/.git/objects/pack
при клонировании должен быть файл, начинающийся с tmp_pack_
. Он содержит загружаемый в настоящее время git pack.
С этой информацией вы можете быть в состоянии глазное яблоко продолжительность.