2010-08-11 9 views
7

¿Existe alguna forma de subversión para especificar que una ruta específica es un alias para una ruta diferente, con la posibilidad de actualizar ese alias a medida que cambian las condiciones? ¿Puedo bloquear caminos para evitar cambios en ellos?¿Admite Subversion los alias para las ramas

Estoy trabajando en una estructura de repositorio y lo que me gustaría hacer es tener las siguientes rutas:

  • /versions/1.0 - versión anterior (Cerrado)
  • /versiones /1.1 - versión anterior (Cerrado)
  • /versions/1.1.1 - Versión actual (desbloqueado para el desarrollo de parches)
  • /versions/1.1.2 - Siguiente Versión secundaria (desbloqueado para el desarrollo)
  • /versions/1.2 - próxima versión importante (desbloqueado para su desarrollo)
  • /parche - Alias ​​de /versions/1.1 0.1, Checkins aparecen en ambos lugares
  • /subrelease - Alias ​​de /versions/1.1.2, Checkins aparecen en ambos lugares
  • /tronco - Alias ​​de /versions/1.2, Checkins aparecen en ambos lugares

El objetivo es mantener el tronco en movimiento para mantenerse al día con el lugar donde la mayoría de los desarrolladores están trabajando. Después de que liberamos un par de veces y 1.2 entre en funcionamiento, la estructura sería:

  • /versions/1.0 - versión anterior (Cerrado)
  • /versions/1.1 - versión anterior (Locked)
  • /versions/1.1.1 - versión anterior (Cerrado)
  • /versions/1.1.2 - versión anterior (Cerrado)
  • /versions/1.2 - Versión actual (desbloqueado para el desarrollo de parches)
  • /versions/1.2.1 - Siguiente Versión secundaria (desbloqueado para el desarrollo)
  • /versions/1.3 - próxima versión importante (desbloqueado para su desarrollo)
  • /parche - Alias ​​de /versions/1.2, Checkins aparecen en ambos lugares
  • /subrelease - Alias ​​de /versions/1.2.1, Checkins aparecen en ambos lugares
  • /tronco - Alias ​​de /versions/1.3, Checkins aparecen en ambos lugares

Sé que podría hacer esto en mi propia máquina, sino que obliga a esta en el control de la fuente, todos tienen un conjunto de verbos comunes con los que trabajar.

Respuesta

6

Según mi leal saber y entender, puede lograr algo similar a esto usando el svn:externals property para hacer que una carpeta actúe como un alias de otro. Si nunca tiene que comprometerse en dos versiones/ramas a la vez, debería funcionar.

+0

En realidad sí, me olvidé de eso. He tenido una experiencia mixta con eso, pero eso está funcionando con un externo dentro de otro proceso de pago en lugar de tomar el externo de todo el proceso de pago. También he visto enlaces internos discutidos algunas veces en la lista de svn, pero aún no existen. – Rup

2

No hay soporte para alias, lo siento. Sin embargo, es fácil y rápido copiar árboles completos. No puede crear la versión/1.2, etc. y luego simplemente copiar el tronco a la versión/1.2 cuando llegue el momento, o simplemente trabajar en la versión/1.2. De forma alternativa, puede administrar ambos, pero use un proceso para copiar los commits entre los dos, p. una vez que pasaron todas las pruebas en su servidor de integración continua, copia los commits desde trunk hasta 1.2.

Bloqueo: puede escribir un enlace de confirmación del lado del servidor para evitar confirmaciones a rutas específicas y agregar allí sus rutas para bloquearlas. Sin embargo, no hay soporte integrado ni en el servidor ni en el cliente predeterminado. Algunos clientes, p. TortoiseSVN tratará las rutas que contienen 'etiquetas' como deberían ser bloqueadas y le advertirá si se va a comprometer con ellas, pero eso es puramente del lado del cliente y específico del cliente.

Cuestiones relacionadas