¿Cómo depurar versiones antiguas de software?

Nota: Actualmente usa Perforce como una herramienta CM.

Actualmente realizo varias versiones de debugging de software [solo files de debugging (.pdb) y binarys (.dll y .exe)]. En cada lanzamiento, verifico todos los files usados ​​para generar los binarys en nuestra herramienta CM (línea base). Luego compruebo los files y continúo haciendo cambios. Actualmente, si había un problema con uno de los lanzamientos, por lo que necesitábamos depurarlo, tenía que volver el código a la versión utilizada.

Mi pregunta es, ¿cómo debo proceder para depurar fácilmente versiones antiguas? Si creo una twig desde la línea de base que acabo de hacer, entonces podría simplemente build la versión anterior para la debugging, pero ¿qué hay más atrás que eso? No quiero ramificarme cada vez que hago una línea de base (bastante seguro de que no quiero hacer eso).

Sé que con VHDL puedes crear construcciones con puntos de testing y usar las herramientas de Xilinx para depurar cualquier versión construida de VHDL. ¿Hay alguna manera similar en que podamos hacer esto en VS (quizás utilizando los files .pdb y algunas herramientas externas)?

¿Cómo se basan las revisiones de línea de base para que pueda depurar fácilmente la versión anterior?

Eric Sinc tiene un fantástico CÓDIGO DE CONTROL DE FUENTE que cubre este tema (y mucho más).

Recomiendo leerlo porque este chico sabe lo que hace.

Estarías más interesado en el Capítulo 6: Historia y el Capítulo 7: Sucursales .

Esto realmente me ayudó cuando estaba aprendiendo sobre control de fonts y estrategias de lanzamiento de software.

Con p4 no es necesario crear una twig para ir "atrás en el time". Todo lo que tiene que hacer es sincronizar con la label apropiada o cambiar el número. Por ejemplo, si recreara la versión 1.1 de ProductX y el último cambio en p4 fuera el número de cambio 2000, puede hacer lo siguiente:

p4 sync //depot/ProductX/...@2000 

o si se usó una label, como "Release1.1", puede hacer esto:

 p4 sync //depot/ProductX/...@Release1.1 

o si no puedes resolverlos, incluso podrías intentar sincronizar en una date determinada. Como:

 p4 sync //depot/ProductX/...@2009/02/01:12:15:00 

Para get más información en p4 sobre las revisiones de files, intente esto:

 p4 help revisions 

advertencia: hace un time y forzosamente:

Para forzosamente, probablemente seguiría y "labelría" cada lanzamiento (de manera forzada, labelr files crea una label)

Luego puede verificar una label para depurarla. Si necesita realizar cambios y enviar una "revisión" contra esa versión anterior, puede crear una twig a partir de esa label en lugar de hacerlo desde HEAD.

El labeldo es bastante simple, "label p4 -l release2.0 // depot / bch / …"

La ramificación de una label no es demasiado difícil, necesita crear una nueva twig y luego integrarla desde la label fuente: "integración p4 -b [nombre-twig] -s //depot/bch/…@release2.0"

Tenga en count que también puede labelr versiones anteriores (históricas) del código o crear twigs de confirmaciones anteriores también.