Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=fe2ecda7-ad94-4680-9a9d-236d2174cbd1

Git Virtual File System: trabajar con repositorios gigantes

Logo de Git

Microsoft es uno de los gigantes del software, con equipos de programadores de todos los tamaños trabajando en repositorios de código enormes. Muchos de estos equipos hace ya tiempo que están usando el control de código fuente distribuido más popular, Git, o están migrando hacia él.

En la mayor parte de los casos, el cliente Git convencional les funciona muy bien. Pero existen unos pocos equipos que trabajan con repositorios de tamaño muy poco habitual. Por ejemplo, el código fuente de Windows tiene más de 3,5 millones de archivos y pesa más de 270 GB. El cliente convencional de Git no fue diseñado para trabajar con repos tan grandes. En estos casos tan descomunales, un habitual git checkout puede tardar hasta 3 horas en ejecutarse, e incluso un simple git status tarda casi 10 minutos en ejecutarse 😱. En estas circunstancias trabajar contra el repositorio puede ser un dolor constante...

Por ello Microsoft ha desarrollado una solución que permite al cliente Git trabajar con repos de cualquier tamaño. Se trata de GVFS (Git Virtual File System), un software que virtualiza el sistema de archivos de un repositorio Git y engaña al sistema para que parezca que todos los archivos están presentes en tu equipo, pero en realidad sólo descarga cada archivo la primera vez que se necesita.

Cómo funciona a nivel del sistema de archivos, las herramientas y entornos que utilizas son exactamente los mismos. No se necesita ningún cambio ni adaptación para poder sacarle partido.

En un repo tan grande normalmente ningún desarrollador compila el proyecto completo. Lo habitual es que se descarguen los resultados de compilación más reciente y sólo se hace la "build" de una pequeña parte del código fuente, el relacionado con la parte que se está modificando. Por lo tanto, aunque hay más de 3 millones de archivos en el repo de Windows, un desarrollador por regla general sólo tendrá que descargar y utilizar alrededor de 50 a 100 mil de esos archivos, como mucho.

Con GVFS se consiguen mejoras de rendimiento muy importantes: el clonado de un repo ahora lleva unos pocos minutos en vez de 12 horas, un checkout tarda sobre 30 segundos en lugar de 3 horas, y se puede obtener un estado en 4-5 segundos en vez de en 10 minutos. Y Microsoft asegura que van a mejorar aún más estas estadísticas.

Aunque GVFS está todavía en desarrollo, Microsoft ha liberado el código fuente en GitHub. Así que si te interesa puedes ir probándolo ya, aunque se necesita un controlador para el sistema de archivos que está todavía en versión preview, si bien no tendrás que compilarlo pues los tienes disponibles en forma de paquete NuGet para descarga. Microsoft recomienda, de momento, utilizarlo en una máquina virtual y no en un entorno real de producción por si acaso aparece algún problema (¡con las cosas de comer no se juega!).

Además del código fuente de GVFS, también han retocado el propio Git con pequeños cambios para que funcione bien usando este sistema virtual de archivos.

Por último, y también interesante, GVFS se basa en una extensión de protocolo que cualquier servicio puede implementar, por lo que puede serte útil para tus proyectos también.

Si te interesa el tema de GitVFS en particular y de la gestión de código fuente en general te recomiendamos que escuches este episodio del podcast de El Bruno. Muy interesante.

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP

No te pierdas ningún post

Únete gratis a nuestro canal en Telegram y te avisaremos en el momento en el que publiquemos uno nuevo.

Archivado en:

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.