2012-05-03 17 views
8

Soy nuevo en Mercurial y estoy usando el sistema de ramificación Estable/Predeterminado. Aquí estamos todos en Windows, y estoy tratando de hacer que todos trabajen en este sistema. Todos estamos usando TortoiseHg. Intento documentar cómo fusionar los cambios en versiones estables y de etiquetas, pero solo he usado Mercurial durante aproximadamente tres semanas, así que ni siquiera estoy seguro de estar haciendo esto correctamente. Además, parece que a TortoiseHg le faltan algunas opciones disponibles desde la línea de comando. Pero, necesito hacer que esto funcione desde el shell de Windows, o no será adoptado aquí.¿Es esto correcto? Fusión entre sucursales estables y predeterminadas en Mercurial usando TortoiseHg

Todo nuestro trabajo de programación se realiza de manera predeterminada, y la rama estable se usa solo para las versiones del software. Una cosa que me lleva a creer que estoy haciendo algo mal es que, después de cada fusión, tengo que volver a hacer la rama estable. ¿Eso es normal? Parece contra-intuitivo.

A continuación se muestra el procedimiento que escribí. Por favor, siéntase libre de señalar mi idiotez o hacer cualquier pregunta. Y gracias de antemano por cualquier comentario.

En mi computadora portátil, hay dos directorios para cada proyecto. El directorio devel almacena un clon de la rama por defecto,

===============

La fusión de las ramas y la creación de una versión estable, TortoiseHg

- Comprometerse en el repositorio de desarrollo.

- Abra el directorio local devel.

- Inicie HgWorkbench.

- Haga clic en la última versión estable de la rama estable.

- Seleccione Combinar con locales ...

- Sincronizar y empujar cambios en el repositorio remoto.

- Ir al repositorio estable local.

- Sincronice y extraiga del repositorio remoto.

- Actualiza a la última rama predeterminada. Escoger "actualizar para dar propina" debería ser lo mejor.

- TortoiseHg -> commit. Comprometerse a la rama "estable". Necesitarás volver a crear una nueva rama. Cuando se pregunta, selecciona "Reiniciar rama".

- Abra HgWorkbench y agregue una etiqueta para la última versión estable. Ejemplo "Versión X.X"

- Sincronice y envíe al repositorio remoto. Use el botón Opciones en el cuadro de diálogo Sincronización para abrir el cuadro de diálogo "Opciones de sincronización". En el campo inferior etiquetado como "Sucursal", escriba "estable"

- Regrese al repositorio "devel" local.

- Sincronice y extraiga del repositorio remoto. Use el botón Opciones en el cuadro de diálogo Sincronización para abrir el cuadro de diálogo "Opciones de sincronización". En el campo inferior etiquetado como "Sucursal", asegúrese de que el campo esté en blanco. De lo contrario, se establecerá de forma predeterminada en la rama "estable".

Respuesta

6

No es necesario que el segundo clon obtenga lo que desea y creo que agrega complejidad donde no es necesario.

Esto es lo que haría:

  1. tener un único clon del repositorio
  2. Aprobar de la rama default
  3. inicio HgWorkbench
  4. Haga clic derecho en el último conjunto de cambios en la rama stable
  5. Elija Update... en el menú emergente y presione el botón Update en la ventana emergente (nosotros e las opciones por defecto)
  6. clic derecho en el último conjunto de cambios en la rama default
  7. Elija Merge with local...
  8. Si se muestra el estado de directorio de trabajo para ser limpio (debe ser) y luego haga clic en el botón Next
  9. Si hay hay conflictos de fusión (de nuevo, no debería haber si lo hace ningún desarrollo en stable) haga clic en el botón nuevo Next
  10. Introduzca un mensaje de registro y haga clic en el botón Commit y la prensa Finish en el siguiente paso
  11. Haga clic con el botón derecho en el último conjunto de cambios en la rama stable y elija Tag..., ingrese el nombre de la etiqueta y presione el botón Add.
  12. Haga clic derecho en el último conjunto de cambios en la rama default y elija Update... usando las opciones por defecto de nuevo

Ahora tiene un etiquetado stable sucursal y están de vuelta en la rama default continuar el desarrollo. Cuando esté listo para lanzar una nueva versión stable, repita los pasos anteriores desde el paso 3.

+0

Eso suena mucho más limpio. Voy a intentarlo por la mañana. Muchas gracias! – user1372617

+0

Seguimiento: funcionó a la perfección. ¡Muchas gracias! – user1372617

Cuestiones relacionadas