2012-05-16 25 views
14

Tengo que crear varias etiquetas todos los días en un repositorio de Git.
Cuando tengo muchas etiquetas, ¿hará que mi repositorio sea lento o cause otros problemas?¿Demasiadas etiquetas causarán problemas en Git?

Nota: Estoy usando GitHub, pero responda genéricamente.

+0

AFAIK una etiqueta es solo un puntero a una confirmación. Si un servicio como github tiene que hacer un procesamiento adicional para cada etiqueta, podría ser más lento actualizarlo en el sitio web, pero el propio git no debería ralentizarse, excepto tal vez 'git log' si tienes unos pocos millones de etiquetas. –

Respuesta

6

(Annotated) tags no hará que Git sea lento, solo que es más difícil de usar ya que tendrá más dificultades para encontrar etiquetas relevantes entre todas las intermedias.

En el peor de los casos, puede hacer que su interfaz web (como GitHub) sea lenta si tiene que mostrar miles de etiquetas.

Tal vez no sea necesario empujar todas esas etiquetas, en cuyo caso podría considerar hacer un local intermedio "Lightweight" tags.

+0

Las etiquetas ligeras son las predeterminadas, ¿verdad? –

+0

@VonC Necesito presionarlos, los usarán más tarde otros usuarios. Me preguntaba si necesitaría limpiar los más viejos. –

+0

@ ML-- puedes limpiarlos, primero localmente y luego en el control remoto: 'etiqueta git -d 12.15',' origen de git push: refs/tags/12.15'. Sin embargo, sus colegas pueden tener dificultades para sincronizar: http://stackoverflow.com/questions/1841341/remove-local-tags-that-are-no-longer-on-the-remote-repository – VonC

-1

Si usa windows/cmd, obtendrá este error "fatal: demasiados params" si utiliza comillas simples en su comando. P.ej. git tag -a ann_v1.1 -m 'Annotated tag v1.1'. Para solucionarlo, utilice comillas dobles en su lugar. Esta cita única causa problemas en otros lugares también. P.ej. git commit -m 'dangerous stuff' provocará el error - error: pathspec 'dangerous' no coincide con ningún archivo conocido por git.

2

Usando Git 2.8.1 en Windows, he experimentado la lentitud de menor importancia de ciertos comandos cuando hay un montón de etiquetas (15000 más o menos), incluyendo:

  • git log (con --decorate)

  • git status

  • Viendo el historial en Visual Studio.

  • Usando el símbolo del sistema cuando la cabeza está separada (ya que Git Bash imprime bastante la revisión actual al lado del directorio actual).

Todos estos comandos examinan las etiquetas para decorar las revisiones que se muestran. Cada uno de estos comandos tarda aproximadamente 1-2 segundos más que sin las etiquetas.