Control de versiones para el código aún no probado

Mi equipo tiene una docena de ingenieros, algunos de los cuales trabajan en modules que demorarán de 2 a 3 semanas en completarse.

Ahora integramos cada module a la twig principal de CVS solo después de que se completen las testings unitarias.

El problema con esto es durante unas buenas 2-3 semanas, el código solo se encuentra en la computadora de un ingeniero y no está bajo control de versión.

El lenguaje de progtwigción utilizado es C.

¿Hay alguna manera elegante de administrar el código no probado por unidad bajo control de versión?

Gracias

James

Su process de 2-3 semanas antes del check-in a la sucursal "principal" no está fuera de la norma, como sería un esfuerzo similar de networkingiseño del "tratamiento de conducto" (un trabajo de reestructuración serio que a veces es necesario).

Sin embargo, tendería a ponerme bastante nervioso por ese time fuera del control de la versión.

  1. No codifique enojado.
  2. No codifique borracho.
  3. No codifique durante mucho time sin el "control de punto" de control de versión.

Una recomendación fuerte es que el desarrollador local utilice Mercurial o Git para el control de versión local durante esas 2-3 semanas, y luego puede verificar el proyecto "finalizado" en la twig (principal) de CVS. Están realmente diseñados para exactamente ese escenario.

Eso es lo que hacemos, funciona, y hace que los diffs-y-parches y la queueboración entre desarrolladores individuales sean bastante triviales.

(Para nosotros, Mercurial es local, Subversion es el sistema de control de versiones "principal").

… durante unas buenas 2-3 semanas, el código solo se encuentra en la computadora de un ingeniero y no está bajo control de versiones …

Me parece bien que la progtwigción fuera del control de la versión sea como conducir con marcha atrás: técnicamente factible pero generalmente bastante contraproducente.

En ese sentido, diría que cualquier otro enfoque que permita de alguna manera que los desarrolladores mantengan continuamente su trabajo bajo VC sería más elegante que nada en absoluto. Para eso, hay muchas forms conocidas: googlear para la estrategia de ramificación de control de versiones muestra muchos resources explicando sus opciones y criterios de cómo elegir.

Sin experimentar es bastante difícil determinar cuál de estas opciones se ajusta mejor a su proyecto. Cuando estudie los resources a los que me refiero arriba, le recomendaría que verifique los detalles de lo que se suele llamar Feature Branch . Esta estrategia se aproxima bastante al caso que describe "modules que tardarán de 2 a 3 semanas en completarse" , aunque no apostaría a que es lo mejor para su equipo.

Tenga en count también que, al less para las necesidades de los desarrolladores "internos", tiene la opción de utilizar un sistema de control de versiones que no sea el CVS anticuado e inconveniente.

Si la política de su compañía exige que se pruebe todo el código de su unidad antes de facturar, creo que es una buena política, y debe hacer eso: escriba las testings de su unidad, tal vez incluso antes de escribir el código.

Pero si te entendí mal y es solo que debería haber una gran session de testing cuando todo está hecho, bueno, entonces está muy mal. Definitivamente encontrará problemas de integración molestos. Si no puede cambiar esa política, al less tenga su VCS local. Además, podría tener config con los modificadores "featureX_Enabled" e intentar no olvidar establecerlo en '0' al registrarse.

De todos modos, cambie a Git o Mercurial, sería mucho less doloroso de usar.