Implémenter les fonctions scalaire et inter-dépôt lors du partage inter-dépôt

Effectué

À mesure que les projets logiciels gagnent en complexité et en ampleur, les flux de travail Git traditionnels peuvent rencontrer des défis qui entravent l’efficacité et la collaboration. Ces défis peuvent être relevés par le biais d’une stratégie de gestion complète des référentiels comprenant des techniques telles que Scalar et le partage entre les référentiels.

Scalaire

Scalar est une extension de système de fichiers virtuel Git développée par Microsoft. Elle optimise les performances lors de la gestion des référentiels volumineux, ce qui accélère les opérations de clonage et d’extraction. Pour ce faire, elle utilise une combinaison de mise en cache et de maintenance en arrière-plan.

Lorsque l’extension Scalar est utilisée pour cloner un référentiel Git, elle met en cache les métadonnées du référentiel et les stocke localement sur l’ordinateur de l’utilisateur. Ces métadonnées incluent des informations sur les branches, les étiquettes et l’historique des validations du référentiel. En mettant en cache ces données, Scalar peut réduire considérablement le temps nécessaire au clonage du référentiel. Les opérations Git suivantes peuvent ensuite utiliser les données en cache, améliorant ainsi davantage les performances.

Scalar utilise également la maintenance en arrière-plan pour que les métadonnées en cache restent à jour. En d’autres termes, Scalar récupère (fetch) régulièrement les modifications apportées au référentiel et met à jour les métadonnées en cache en conséquence. En procédant ainsi, Scalar assure que les données en cache sont toujours actuelles et exactes, ce qui permet d’améliorer encore les performances.

Partage entre les référentiels

Le partage entre les référentiels désigne la pratique de partage du code, des dépendances et des ressources entre plusieurs référentiels Git d’une organisation. Cette pratique favorise la réutilisation du code, la collaboration et la maintenance en tirant parti des composants et bibliothèques partagés entre les projets.

Mise à l’échelle et optimisation des référentiels Git

Lorsque vous concevez une stratégie organisationnelle qui prend en charge la mise à l’échelle et l’optimisation des référentiels Git, vous devez prendre en compte plusieurs points clés.

Implémentation de Scalar pour les référentiels volumineux

Évaluez la taille et la complexité de chaque référentiel dans votre organisation. Identifiez ceux de plus grande taille et qui contiennent des quantités importantes de données historiques. Pensez à implémenter Scalar pour améliorer leurs performances et réduire l’utilisation des ressources. Suivez les instructions de Microsoft sur la configuration de Scalar pour prérécupérer et mettre en cache les données de manière à optimiser les performances.

Optimisation de la structure des référentiels

Évaluez la structure actuelle de vos référentiels Git. Pensez à décomposer les grands référentiels monolithiques en référentiels plus petits et plus gérables, chacun se concentrant sur un composant ou un module spécifique. Adoptez une approche modulaire de l’organisation des référentiels. Utilisez des sous-modules ou des sous-référentiels Git pour gérer les dépendances entre les référentiels tout en favorisant la réutilisation et le partage du code entre les projets.

Les sous-modules Git permettent d’inclure un référentiel Git comme sous-référentiel d’un autre référentiel Git. Cela est utile lorsque vous souhaitez inclure du code ou des bibliothèques externes dans votre projet. Si vous ajoutez un sous-module Git, Git crée un fichier texte appelé fichier « .gitmodules » qui contient des informations sur le sous-module, y compris son URL et la validation vers laquelle il pointe actuellement.

Les sous-référentiels Git représentent une approche plus récente pour inclure un référentiel Git en tant que sous-répertoire d’un autre référentiel Git. Contrairement aux sous-modules, les sous-référentiels sont gérés par un outil distinct appelé « git-subrepo » et ne nécessitent pas de fichier « .gitmodules » distinct. En outre, les sous-référentiels peuvent être divisés en référentiels autonomes à tout moment, tandis que les sous-modules restent toujours dans le référentiel principal.

Promotion du partage entre les référentiels

Établissez des instructions et des meilleures pratiques claires pour partager du code et des ressources entre les référentiels au sein de votre organisation. Encouragez l’utilisation des sous-modules Git ou des sous-référentiels Git pour référencer des bibliothèques ou des composants partagés hébergés dans des référentiels distincts.

Dans le cadre de votre conception, pensez à un registre de packages ou à un référentiel d’artefacts centralisé pour publier et consommer des dépendances partagées de manière cohérente entre les projets.
Veillez à communiquer clairement votre stratégie dans l’ensemble de l’organisation. Encouragez la collaboration entre les équipes pour identifier les opportunités de partage et de réutilisation du code et pour les implémenter en fonction de vos conseils.