Pregunta

esta puede ser una pregunta ingenua, pero, como se pregunta en el objeto, ¿cuál es la forma real que utilizan los softwares de versión para fusionar una rama en el tronco principal sin generar código roto?

Este es un ejemplo rápido: hago una sucursal del troncal principal para el programa " Hello World Power edition " Añado el apoyo a Klingon. Este es un cambio radical que cambia la forma en que funciona la función printHelloWorld ().

Mientras tanto, debido al error # 749 que causa " Hello World " para ser escrito " Helo World " ;, la función printHelloWorld () en el troncal principal ha sido cambiada.

Ahora, el problema que veo aquí es: cuando fusiono por rama nuevamente al tronco principal, experimento un choque en la función printHelloWorld () dentro del archivo sayHello.py

¿Cómo sabe un programa VCS cómo agregar el soporte de Klingon desde mi sucursal y mantiene la solución de errores en el tronco principal? ¿Cuáles son las estrategias impulsadas por el hombre o por el software para evitar esto?

Gracias de antemano.

¿Fue útil?

Solución

  

¿Cómo un programa VCS sabe cómo agregar?   el apoyo Klingon de mi rama y   ¿Mantener la corrección de errores en el tronco principal?

VCS no sabe nada acerca de la semántica de su código fuente, lo ve como un montón de archivos de texto / binarios. El sistema VCS utiliza diff / merge algoritmos para detectar conflictos entre los suyos y la versión actual del archivo. Es su responsabilidad resolver tales conflictos porque solo usted conoce semánticamente estos cambios. Algunos VCS, como SVN, requieren que actualice su copia de trabajo con los últimos cambios del tronco antes de permitirle realizar cambios para asegurarse de que no se pierda nada.

Para asegurarse de que no rompió nada y que todas las correcciones de errores anteriores no se rompieron, debe usar revisiones de código , pruebas de unidad y otras prácticas. Integración continua es una buena manera de mantener el software en buen estado.

Otros consejos

En tal caso, el sistema de control de versiones no puede fusionarse automáticamente, tiene que hacer la combinación a mano. Las buenas pruebas unitarias le ayudarán a asegurarse de que no se pierda ninguna funcionalidad.

Antes de que pueda volver a combinar su rama con el tronco, el sistema de control de versiones actualizará su copia de trabajo con los cambios en el tronco desde que se ramificó. Simplemente no le permitirá fusionarse sin esta actualización. Esto le asegura que obtendrá todas las correcciones de errores en el tronco en su próxima confirmación.

Una buena estrategia para trabajar en una sucursal es trasladar los cambios en el troncal hacia su sucursal de manera muy regular. Esto garantiza que no se aleje demasiado del tronco, lo que lo lleva a tener problemas cuando finalmente se fusiona nuevamente en el tronco.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top