Разработчики из Microsoft столкнулись с проблемой масштабирования Git: как оказалось, на платформе Windows приложение не в состоянии работать с очень крупными репозиториями.
Так, например, исходные коды Windows содержат 3,5 миллиона файлов, которые в сумме занимают более 270GB. В одном из крупных проектов Microsoft операция clone выполняется 12 часов, checkout — 3 часа, status — 8 минут, commit — 30 минут. Поняв, что так работать невозможно, Microsoft создала GVFS — виртуальную файловую систему для Git, позволяющую загружать с серевера только востребованные данные, сохраняя при этом видимость наличия всех данных. GVFS позволяет Git думать, что все файлы в репозитории находятся на месте, но физически их содержимое загружается только при первом открытии.
С помощью предложенного решения для репозиториев, размещённых в окружении Windows, удалось ускорить выполнение операции clone в 144 раза, checkout в 360 раз, status в 120 раз, commit в 140 раз. Например, при работе с репозиторием, содержащим более 3 млн файлов, применение GVFS позволяет при выполнении типичных операций фактически загружать только 50-100 тысяч файлов.
Исходный код проекта опубликован на Github под лицензией MIT. В настоящий момент сборка GVFS поддерживается только для Windows 10. Для корректной работы репозиториев GVFS рекомендуется использование подготовленного в Microsoft модифицированного ответвления от свободного продукта git-for-windows (c обычным Git GVFS не работает, так как на стороне Git требуется наличие поддержки специального протокола GVFS).
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев