Toda la confusión proviene de la semántica diferente que MS utiliza para "Número de compilación" y especialmente "Revisión". Los términos solo significan cosas diferentes.
La mayoría de las personas (incluido yo mismo) utilizan un esquema de numeración semántica donde solo obtiene un número de BUILD más alto cada vez que tiene que hacer una nueva compilación para cualquier razón. Para nosotros, una revisión se considera solo otro cambio de código, y la parte BUILD se incrementa automáticamente con cada ejecución de CI. Los módulos con el mismo MAJ.MIN.REV se consideran intercambiables, y BUILD le indica cuál es el más reciente.
El aumento de REVISION, sin embargo, indica una nueva rama de lanzamiento permanente, por eso lo colocamos antes de BUILD. La desventaja de este enfoque es que podríamos obtener la siguiente secuencia de eventos:
- cometer el número 4711: Alice agregó la función A
- CI produce build 1.2.3.100
- cometer el número 4712: Bob modificó la característica B
- cometer el número 4713: la característica A de Alice (la "revisión")
- CI produce la compilación 1.2.3.101

Comopuedever,elhotfixnoeselúnicocambiocontenidoenlasiguientecompilación,tambiénlamodificacióndeBobseconvierteenpartedeesacompilación.Sideseaestabilizarlaramaactual,puedetenerproblemas,yaquenuncapuedeestarsegurodesiBobacabadeagregarunmontóndeerrores.
MSusaambostérminosdemaneradiferente.ElnúmerodeBUILDnoseincrementaautomáticamente,ensulugar,sepuedeconsiderarcomounaespeciederamadelanzamiento,paracongelarelcódigoutilizadoparaunaversiónparticulardelcódigo.LaREVISIÓNindicacambios"en caliente" adicionales aplicados a esa rama de CONSTRUCCIÓN. Por lo tanto, la secuencia sería la siguiente:
- cometer el número 4711: Alice agregó la función A al troncal / maestro
- Carl crea una rama de construcción
1.2.100
- CI produce build 1.2.100.0
- cometer el número 4712: Bob modificó la característica B en el troncal / maestro
- cometer el número 4713: Alice corrigió la característica A en la rama
1.2.100
- CI produce la compilación 1.2.100.1

EltérminoREVISIÓNpuedereferirsea
- unarevisióndeproducto(asíescomolamayoríadelagentelousa)
- unarevisióndeunacompilacióndiariaenparticular(esoesloquehaceMS)
LadiferenciaclaveentrelosdosprocesosessideseaonotenerlacapacidaddeaplicarrevisionesalascompilacionesdeCIy,porlotanto,enquépuntodelprocesoserealizalasucursal.Esteaspectosevuelveimportantecuandodeseapoderelegirunaversiónenparticularencualquiermomentodespuésdequetodaslaspruebashayantenidoéxitoypromocionarexactamenteesaversiónalapróximaversiónoficialdesuproducto.
Ennuestrocaso,laherramientaCIcreaunaetiquetaderepositorio,porloquesiempretenemoslainformaciónnecesarialistaparausar,cuandoseanecesario.ConSVNsevuelveaúnmássimple,porquelasetiquetasylasramasseimplementanexactamentedelamismamanera:unaetiquetanoesmásqueunaramaubicadabajo/tags
.
Vertambién
DelaseccióndePreguntasfrecuentesen Estrategia de bifurcación TFS :
¿En qué rama debería arreglar el ticket P1 (revisión)?
-
El P1 se debe arreglar en la rama más cercana a la base de código que se ejecuta en Producción. En este caso, el P1 debe fijarse en la rama Prod. Al aplicar la corrección en cualquier otra rama y al implementar los cambios en la producción, se arriesga a liberar código semiterminado o no probado de las iteraciones posteriores.
-
Ahora puede argumentar que si es seguro trabajar directamente contra la rama Prod, piense de nuevo, un P1 que requiere atención inmediata no debe ser un problema fundamental en el sistema. En caso de que sea un problema fundamental, debe agregarse a la cartera de productos, ya que puede requerir un mayor análisis y discusión con el cliente.
Otra buena lectura es la guía de bifurcación de TFS