Soy nuevo en Mercurial y de lo que estoy empezando a darme cuenta es de que mi flujo de trabajo básico puede no ser la forma más eficiente de trabajar porque realizo confirmaciones con tanta frecuencia y por mejoras de funciones que son tan pequeño que cuando necesito encontrar un paso anterior para volver, es extremadamente difícil.Sugiera un mejor flujo de trabajo en Mercurial
Esto es lo que hago después de configurar un proyecto en Mercurial y de haber completado mi primer compromiso.
- hacer algunos cambios en un archivo y lo consigue a un estado en el que una pequeña mejora está trabajando
hg commit -m "improvement A works"
- hacer algunos cambios en el mismo archivo y ponerlo a un estado en que la próxima mejora menor es trabajando.
hg commit -m "improvement B works"
- Compruebe si todas las mejoras menores se suman a una única característica secundaria que funciona correctamente.
hg commit -m "feature A works"
Si encuentro un error que se cometió en la "mejora A", abro la historia (con el plugin visual Netbeans Mercurial) y copiar y pegar una parte del código de nuevo en mi versión actual y comenzar de nuevo desde allí.
Esto no parece ser un buen sistema. Agradecería cualquier sugerencia.
las3jrock: Gracias. ¿Por qué recomienda ramas para las características en lugar de las mejoras dentro de una característica? – uzo
Recomiendo ramas para las características en lugar de las mejoras individuales que constituyen cada característica porque eso hace que las ramas sean un nivel intermedio de abstracción entre el repositorio (que contiene todo el historial de revisiones del proyecto) y las confirmaciones individuales (que son las unidades atómicas del revisión histórica). En este flujo de trabajo, las confirmaciones relacionadas se agrupan en ramas. En el flujo de trabajo que Jon describe, parece que cada rama contiene exactamente una confirmación, en cuyo caso las ramificaciones y las confirmaciones son representaciones redundantes de la misma unidad del historial de revisiones. – las3rjock
No, no, no pretendía dar a entender que usaría una rama para una confirmación, eso sería absurdo:). Simplemente tenía la intención de designar una unidad de trabajo; una mejora podría ser la adición de un nuevo campo a un formulario web, o una corrección de errores, o un proyecto importante en sí mismo, depende de usted determinar la granularidad a la que desea para trabajar ... – Jon