Utilizamos:
- rama de desarrollo exclusivamente
hasta que el proyecto llega a su fin, o estamos creando una versión hito (por ejemplo.demostración del producto, la versión de presentación), entonces (regularmente) se ramifican nuestra rama de desarrollo actual en el:
No hay nuevas características van a la rama de lanzamiento. Solo se corrigen errores importantes en la rama de publicación, y el código para corregir estos errores se reintegra en la rama de desarrollo.
El proceso de dos partes con una rama de desarrollo y estable (versión) hace la vida mucho más fácil para nosotros, y no creo que podamos mejorar ninguna parte mediante la introducción de más ramas. Cada rama también tiene su propio proceso de compilación, lo que significa que cada par de minutos se genera un nuevo proceso de compilación y, por lo tanto, después de la verificación del código, tenemos un nuevo ejecutable de todas las versiones y ramas en aproximadamente media hora.
Occassionally también tenemos sucursales para un solo desarrollador que trabaja en una tecnología nueva y no probada, o que crea una prueba de concepto. Pero, en general, solo se hace si los cambios afectan a 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 un mes o dos.
En general, no me gusta la idea de que cada desarrollador trabaje en su propia sucursal, porque "salta y ve directamente al infierno de la integración". Recomiendo encarecidamente que no lo haga. Si tiene una base de código común, todos deberían trabajar juntos. Esto hace que los desarrolladores sean más cautelosos con sus registros, y con la experiencia de cada programador sabe qué cambios pueden romper la compilación y, por lo tanto, las pruebas son más rigurosas en tales casos.
En el registro de entrada en cuestión principios:
Si necesita solamente código perfecto que deben controlarse para, a continuación, en realidad nada debe ser evaluada en ningún código es perfecto, y para el control de calidad para verificar y probar. debe estar en la rama de desarrollo para que se pueda construir un nuevo ejecutable.
Para nosotros eso significa que una vez que una característica es completa y probada por el desarrollador se comprueba en. Incluso puede comprobarse en si hay errores conocidos (no mortales), pero en ese caso las personas que se verían afectados por el error generalmente son informados. El código incompleto y de trabajo en progreso también se puede verificar, 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 & data checkin hará inutilizable el programa hasta que se haya creado el nuevo código. Lo mínimo que tenemos que hacer es agregar un "ESPERA PARA CONSTRUIR" en el comentario del check-in y/o enviar un correo electrónico.
he respondido a una pregunta similar (o bien, una pregunta en ese mismo espacio/dirección) antes, por lo que es posible que desee echa un vistazo a esta pregunta: [¿Cuáles son algunas buenas estrategias para permitir que las aplicaciones implementadas para ser hotfixable?] (https://stackoverflow.com/questions/143814/what-are-some-good-strategies-to-allow-deployed-applications-to-be-hotfixable#143851) – Till