Estoy migrando un gran repositorio de CVS de 10 años de edad a Git. Parecía obvio dividir este repositorio de múltiples proyectos en varios Git. Pero los tomadores de decisiones están acostumbrados a CVS, por lo que su punto de vista está influenciado por la filosofía de CVS.
Para convencerlos de que migren de un repositorio CVS a diferentes repositorios Git, necesito darles algunos argumentos.
Cuando hablo con compañeros que trabajan en el repositorio de Git durante años, dicen que usar el repositorio de Git múltiple es la forma de usar Git. Realmente no sé por qué (me dan algunas ideas). Soy un novato en este campo, así que hago aquí mi pregunta.
¿Cuáles son los argumentos para usar varios repositorios de Git en lugar de uno que contiene diferentes aplicaciones y bibliotecas de diferentes equipos?
Ya he enumerado:
- las ramas / etiquetas afectan a todos los archivos del repositorio de Git = > contamina los proyectos de otros equipos
- Tamaño de repositorio de Git de límite de 4GB pero esto es incorrecto
- git annotate puede ser más lento en bloat Git repo ...
-
Eamon Nerbonne ha notado la pregunta relacionada:
¿Elegir entre proyectos únicos o múltiples en un repositorio de git? - La razón por la que los gerentes del equipo finalmente han aceptado la división: el único repositorio de Git (550 MB) requería la clonación de 13 minutos en Windows (un minuto en Linux) .
- El repositorio CVS bloat se divide en repositorios de 100 Git:
- cada aplicación muerta en un repositorio
- cada biblioteca estabilizada en un repositorio (el código fuente casi nunca cambia más)
- las aplicaciones / librerías relacionadas se mantienen juntas en un solo repositorio
- movió archivos grandes que no se usaron para la compilación (config ...) a otros repositorios (a Git no le gustan los archivos grandes)
- omitió otros archivos irrelevantes (
*.jar
,*.pcb
,*.dll
,*.so
,*.backup
...)
- Instaló con éxito la herramienta
repo
utilizada por el Proyecto de código abierto de Android para manejar todos estos Git repos:- instalación fácil en Linux
- más difícil en Windows debido a Cygwin y NTFS enlaces nativos requisitos