2012-09-21 11 views
8

Esto puede o no ser una idea muy tonta, pero ¿cómo se puede configurar un repositorio de git de forma tal que cualquier extracción que se realice automáticamente también obtenga las etiquetas del otro repositorio?¿Cómo se puede configurar git para buscar automáticamente las etiquetas en cada extracción?

Según the docs, parece que usted puede hacer esto de forma remota por reposistory:

remoto. <name> .tagopt
Estableciendo este valor en --no-tags deshabilita seguimiento automático de etiquetas al recuperar del nombre < >. Estableciendo en --tags obtendrá todas las etiquetas del nombre < >, incluso si son no accesibles desde los cabezales de bifurcación remotos. Pasando estos indicadores directamente a git-fetch (1) puede anular esta configuración. Ver opciones --etiquetas y --no-tags de git-fetch (1).

¿Hay alguna manera de hacer que --tags sea el indicador predeterminado para buscar en cada búsqueda?

Respuesta

5

La obtención de etiquetas tiene un efecto diferente que la obtención de confirmaciones (git fetch), como se explica en "Does “git fetch --tags” include “git fetch”?".

Este último actualizará los encabezados de las ramas, y realmente buscará las etiquetas accesibles desde esas ramas actualizadas.
El primero buscará todas las etiquetas, pero no actualizará las cabezas de bifurcación.

Por lo tanto, si sus etiquetas son accesibles desde las ramas que está buscando, no tiene que incluir --tags de forma predeterminada.

Teniendo en cuenta la gran historia de algunos acuerdos de recompra (incluyendo la linux one), siempre queriendo a buscar todas etiquetas podrían conducir a la lista de etiquetas que estorba (una lista de etiquetas pollutted por cientos de etiquetas que no se necesitan-).


cuenta que a partir de git 1.9/2.0 (Q1 2014), git fetch --tags buscará todo (como git fetch), además de las etiquetas. Ver "Does “git fetch --tags” include “git fetch”?".

Solicitud de que todas las etiquetas se obtengan desde el control remoto , además de cualquier otra cosa que se han recuperado.

para que pueda probar la remote.<name>.tagOpt config option:

git config (--global) remote.<name>.tagOpt --tags 

lo establece a --tags buscará cada etiqueta de forma remota <name>, incluso si no son accesibles desde directores de las sucursales remotas.

+0

etiquetas Captación no es el valor por defecto, por lo que claramente Linus piensa que es una mala idea.Sin embargo, mi grupo está acostumbrado a BitKeeper y con frecuencia se olvidan de buscar etiquetas cuando _deberían_ (es decir, lanzar etiquetas). Puede eliminar etiquetas en caso de que el volumen de etiqueta inútil se vuelva ridículo. –

+0

@RossRogers Pero si están buscando las ramas de publicación, también recibirán las etiquetas. – VonC

+0

El comportamiento predeterminado es buscar desde nuestro tronco git (sí, tenemos un tronco, aunque las personas pueden tirar y empujar el uno del otro). Este tronco está envuelto en una herramienta interna similar a [Jenkins] (http://jenkins-ci.org/) que solo integra las ediciones después de pasar un montón de pruebas. De todos modos, normalmente "no" extraen de "versiones" internas contra las que se ejecutan más regresiones. Normalmente tiran de la punta del tronco porque está muy bien protegido por regresiones. Queremos que siempre agarren las etiquetas con un comando, por lo que hice esta pregunta. –

3

Sólo tiene que añadir esto a la configuración del mando a distancia:

fetch = +refs/tags/*:refs/tags/* 
+1

¿alguna opción para hacer esto en global? no solo para especificar el repositorio. – zx1986

Cuestiones relacionadas