Gracias por el A2A. No conozco Mercurial, pero sí conozco Subversion y Git, y entiendo que Mercurial es esencialmente Git escrito en Python con una interfaz un poco más amigable, así que si estás considerando Mercurial, aplica mis comentarios sobre Git en consecuencia.
La respuesta a esto depende de los detalles. La ramificación / fusión en Subversion 1.8 es más lenta que en Git por definición porque ocurre en una red. Sin embargo, para el caso de uso más común de las ramas (compilación candidata o compilación de características), debería funcionar bien. Si haces un montón de ramificaciones y fusiones, Git te ahorrará tiempo a largo plazo.
Si las personas tienen problemas para generar compilaciones limpias, eso suena como un problema con el proceso, no con la herramienta. Haría preguntas como:
– ¿Qué marcos de prueba utilizan los equipos? Las pruebas insuficientes son una causa común de compilaciones rotas. Es difícil lograr una cobertura del 100% del código, pero puede crear fácilmente pruebas en la mayoría de los idiomas modernos para detectar problemas y, en particular, verificar que una característica no tenga regresiones o errores obvios.
– ¿Cuán precisos son los entornos personales de su equipo? Con máquinas virtuales, Docker, etc., no hay una buena excusa para que la mayoría de los equipos eviten tener un entorno para implementar para verificar los cambios de código antes de implementarlos en un entorno compartido. Cada hora que dediques a configurar esto te compensará con al menos dos horas de esfuerzo reducido en el back-end.
– ¿Qué permisos tienen las personas para cambiar el código de producción? Esta es un área donde Subversion es más fácil de usar que Git. Subversion admite permisos específicos en directorios, y dado que las ramas son directorios en Subversion, puede bloquear ramas y asegurarse de que el acceso al código de producción esté controlado. Git tiene algunas cosas que se pueden aplicar para bloquear ramas, pero en última instancia, está diseñado para administrar bases de código como el kernel de Linux, que tienen un desarrollo masivamente paralelo y tienen una noción débil de maestro.
Si conoce las respuestas a estas preguntas, sabrá por qué su equipo tiene problemas de desarrollo. Lo más probable es que no estén probando lo suficiente, no tengan un buen lugar para ver su código ejecutándose antes de que sea promovido, o el equipo está promoviendo código no probado demasiado pronto.
- ¿Soy el único que considera el transhumanismo y sus temas relacionados como algo extremadamente perjudicial para la especie humana y nuestro futuro cercano?
- Hablo sueco como segunda lengua (después del inglés). ¿Qué tan difícil sería aprender alemán?
- Estoy realmente estresado por mis exámenes de la junta. El miedo a no obtener buenas notas me está matando. ¿Cómo debo hacer frente?
- Mi tobillo me sigue doliendo levemente. ¿Qué debo hacer?
- Estoy bastante seguro de que alguien intentó engañarme de alguna manera cargando su teléfono celular a través de mi computadora portátil (USB), ¿cómo puedo asegurarme de que no estoy comprometido?