Usamos:
- rama de desarrollo exclusivamente
hasta que el proyecto esté cerca de su finalización, o si estamos creando una versión histórica (por ejemplo, demostración del producto, versión de presentación), luego (regularmente) ramificamos nuestra rama de desarrollo actual en:
No hay nuevas características en la rama de lanzamiento. Solo los errores importantes se corrigen en la rama de lanzamiento, y el código para corregir estos errores se reintegra en la rama de desarrollo.
El proceso de dos partes con un desarrollo y una rama estable (lanzamiento) nos hace la vida mucho más fácil, y no creo que podamos mejorar ninguna parte introduciendo más ramas. Cada rama también tiene su propio proceso de compilación, lo que significa que cada dos minutos se genera un nuevo proceso de compilación y, por lo tanto, después de un registro de código, tenemos un nuevo ejecutable de todas las versiones y ramificaciones de compilación en aproximadamente media hora.
De vez en cuando también tenemos sucursales para un único desarrollador que trabaja en una tecnología nueva y no probada, o que crea una prueba de concepto. Pero generalmente solo se hace si los cambios afectan muchas partes de la base de código. Esto ocurre en promedio cada 3-4 meses y dicha rama generalmente se reintegra (o desecha) dentro de uno o dos meses.
En general, no me gusta la idea de que cada desarrollador trabaje en su propia sucursal, porque "saltas y te mueves directamente al infierno de integración". Yo recomendaría encarecidamente que no lo haga. Si tiene una base de código común, todos deberían trabajar juntos en ella. Esto hace que los desarrolladores sean más cautelosos acerca de sus registros, y con experiencia cada codificador sabe qué cambios están potencialmente rompiendo la compilación y, por lo tanto, las pruebas son más rigurosas en tales casos.
En la pregunta temprana de check-in:
Si solo necesita que se registre el CÓDIGO PERFECTO , en realidad no se debe registrar nada. Ningún código es perfecto, y para que el QA lo verifique y pruebe, debe estar en la rama de desarrollo para que se pueda construir un nuevo ejecutable.
Para nosotros, eso significa que una vez que el desarrollador haya probado y completado una característica, esta se registrará. Incluso puede registrarse si hay errores conocidos (no fatales), pero en ese caso las personas que se verían afectadas por el error Generalmente informado. El código incompleto y de trabajo en progreso también se puede registrar, pero solo si no causa ningún efecto negativo obvio, como bloqueos o interrupción de la funcionalidad existente.
De vez en cuando, un código combinado inevitable y el registro de datos harán que el programa sea inutilizable hasta que se haya creado el nuevo código. Lo menos que hacemos es agregar un "ESPERE PARA CONSTRUIR" en el comentario de check-in y / o enviar un correo electrónico.