Tenemos un cliente (que tiene un cliente, que tiene un cliente) que nos está volviendo locos con las solicitudes de cambio a una base de código (en PHP). Nuestra primera respuesta fue simplemente trabajar en una troncal principal en SVN, pero el cliente a menudo vuelve y solicita que un determinado cambio deba enviarse a los servidores activos lo antes posible. Por otro lado, otros cambios se reducen en prioridad de repente, que originalmente se agruparon con otros cambios (aparentemente).Sucursales para Every Little Change?
Estamos pensando en utilizar una sucursal para cada solicitud de cambio. ¿Está loco? ¿Qué otras soluciones podrían funcionar?
Gracias!
Editar: Esta es una pregunta realmente difícil para elegir la respuesta correcta. Gracias a todos por sus excelentes respuestas.
Editar: Sé que la mejor respuesta que elegí no era particularmente popular. Yo también quería encontrar una solución técnica a este problema. Pero ahora creo que si el cliente quiere un software con características que puedan implementarse de forma modular ... este problema debería resolverse en en nuestro uso del sistema de control de versiones. Tendría que estar diseñado en el software.
Editar: Ahora es casi un mes más tarde y mi compañero de trabajo/cliente me ha convencido de que múltiples ramas es el camino a seguir. Esto no solo se debe a la locura del cliente, sino también a nuestra necesidad de poder determinar si una función está "lista para funcionar" o "necesita más trabajo" o lo que sea. No tengo el SVN conmigo, pero nos fusionamos usando el consejo del Cookbook SVN: fusiona la rama de la revisión se ramificó a la revisión principal.
Además, al usar este sistema, fusionamos todas las ramas en algún punto y eso se convierte en el nuevo control de calidad y luego en la creación en vivo. Entonces nos ramificamos de eso.
Última edición (quizás): Meses después, este sistema aún funciona para nosotros. Creamos sucursales para cada boleto y rara vez tenemos problemas. Por otro lado, tratamos de mantener las cosas separadas en cuanto a lo que las personas están trabajando ...
Dos años después: Utilizamos GIT ahora, y ahora este sistema es realmente bastante razonable.
¿No es esta la razón por la que ahora tenemos git? –
@Quintin Par, el problema es idéntico si está usando Git (que ahora somos) o SVN (como lo éramos). La pregunta es cómo organizar sucursales PARA EL EQUIPO/cliente. –
La ramificación para cada pequeño cambio, independientemente de si tiene solicitudes o tickets de cambio, o si solo está trabajando en su propio proyecto en casa, es una gran manera de combinar commit-every-little-change (en la rama) y commit (fusionar) -working-code-only (en trunk). Además, estos dos patrones combinados mantienen limpio el tronco de troncos pero proporciona información detallada en el registro de ramas. – clacke