VSTS Git Object Count намного больше, чем ожидалось - PullRequest
0 голосов
/ 30 мая 2018

Я относительный новичок в GIT и Visual Studio Team Services (VSTS, бесплатная версия Team Foundation Server для облачных вычислений), и я только недавно начал использовать ее для разработки нашего веб-сайта.

I 'Я обеспокоен тем, сколько времени занимает создание выпуска, проверка файлов занимает довольно много минут, я полагаю, из-за большого количества объектов, которые он пытается обработать?Количество объектов заявляет 23,909?Я сделал TreeSize для хранилища (кроме папки .git), и он показывает следующее?

также пытался git gc --aggressive --prune, но это не уменьшило количество файлов.

Возможно, что тамБыла ли большая папка с изображениями, хранящимися в хранилище, но я почти уверен, что они были удалены, поскольку они не отображаются в git или на сайте VSTS?

Рад любой помощи!

enter image description here enter image description here

Для тех, кто заинтересован, вот журнал из последнего выпуска, который я сделал.

https://codeshare.io/5w0qop

1 Ответ

0 голосов
/ 30 мая 2018

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

Вы можете взглянуть на git sizer , чтобыполучить лучшее представление / количество сохраненных объектов.И это может дать вам подсказки о том, почему ваш репозиторий большой (по размеру или количеству файлов).

Если вам придется очистить свою историю (но сначала действительно понять, что это значит!), Вы можете получитьпосмотрите на BFG очиститель репо , который является очень хорошим инструментом ...

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

У вас наверняка есть много объектов, которые вы создали только локально.

также пробовали git gc --aggressive --prune, но это не уменьшило количество файлов.

Существует также веская причина, по которой он не уменьшает размер.Это потому, что многие объекты сохраняются в reflog (журнале регистрации, позволяющем исправлять ошибки!).

Так что, если вы действительно хотите удалить ненужные объекты, вам необходимо сначала очистить reflog с помощью:

git reflog expire --expire=now --all 

Я обеспокоен тем, сколько времени занимает создание выпуска, проверка файлов занимает довольно много минут, наверное, из-за большого количества объектов, которые он пытается обработать?

VSTS собирается каждый раз на новой виртуальной машине, поэтому он должен клонировать весь репозиторий каждый раз :( вместо простого извлечения различий.

Если вам не нужен весьhistory (что в большинстве случаев имеет место, за исключением случаев, когда вы вычисляете версию на основе истории git), вам, возможно, следует выполнить поверхностное клонирование, установив depth в 1 в настройках VSTS git-репозитория вашей сборки.меньше объектов.

PS: что вы хотите показать именно с TreeSize? Только у вас есть только 3415 файлов?

...