El uso de miles de objetos de tag en repositorios Git para registrar el historial de despliegues genera problemas de rendimiento y complejidad en la gestión de referencias. Esta práctica, común en entornos de despliegue continuo, crea una entrada única para cada versión, lo que ralentiza operaciones como 'git fetch' o 'git branch' al buscar en archivos de referencias compactadas. Además, los tags no son inmutables y su formato de nombre es una convención externa, no legible por Git, lo que dificulta la auditoría y el revertido de versiones.
La propuesta técnica alternativa sugiere almacenar el historial de cada aplicación como una lista enlazada de commits no nombrados pero relacionados. En este modelo, solo existe una referencia (ref) por par de nivel de servicio y aplicación, que apunta a un commit de metainformación. Este commit de metainformación tiene dos padres: el commit de la versión actual y el commit de metainformación de la versión anterior. Al enlazar estos commits, Git trata el historial de despliegues como una historia lineal natural, permitiendo el uso directo de comandos estándar como 'git log' para filtrar, ordenar y buscar versiones específicas sin necesidad de filtrar listas masivas de tags. Este enfoque mejora la eficiencia, la legibilidad y la capacidad de revertir a versiones anteriores de manera precisa y rápida.
