¿Es esto correcto? Fusión entre ramas estables y predeterminadas en Mercurial usando TortoiseHg

Soy nuevo en Mercurial y estoy usando el sistema de bifurcación Estable/Predeterminado. Todos estamos en Windows aquí, y estoy tratando de que todos los demás trabajen en este sistema. Todos usamos TortoiseHg. Estoy tratando de documentar cómo fusionar cambios en lanzamientos estables y etiquetados, pero solo he estado usando Mercurial durante aproximadamente tres semanas, por lo que ni siquiera estoy seguro de estar haciendo esto correctamente. Además, parece que a TortoiseHg le faltan algunas opciones disponibles en la línea de comandos. Pero necesito hacer que esto funcione desde el shell de Windows, o no se adoptará aquí.

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 de desarrollo almacena un clon de la rama predeterminada,

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

Fusionando las ramas y creando una versión estable, TortoiseHg

-- Confirmar en el repositorio de desarrollo.

-- Abra el directorio local de desarrollo.

-- Inicie HgWorkbench.

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

-- Seleccione Fusionar con local...

-- Sincronizar y enviar cambios al repositorio remoto.

-- Ir al repositorio estable local.

-- Sincronizar y extraer del repositorio remoto.

-- Actualizar a la última rama predeterminada. Elegir "actualizar hasta la sugerencia" debería ser lo mejor.

-- TortoiseHg -> cometer. Comprometerse a la rama "estable". Deberá volver a crear una nueva rama. Cuando te pregunte, selecciona "Reiniciar rama".

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

-- Sincronizar y enviar al repositorio remoto. Utilice el botón Opciones en el cuadro de diálogo Sincronizar para que aparezca el cuadro de diálogo "Opciones de sincronización". En el campo inferior etiquetado como "Sucursal", escriba "estable"

-- Regrese al repositorio local "devel".

-- Sincronizar y extraer del repositorio remoto. Utilice el botón Opciones en el cuadro de diálogo Sincronizar para que aparezca el cuadro de diálogo "Opciones de sincronización". En el campo inferior con la etiqueta "Sucursal", asegúrese de que el campo esté en blanco. De lo contrario, se establecerá de forma predeterminada en la rama "estable".

preguntado el 03 de mayo de 12 a las 16:05

1 Respuestas

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

Esto es lo que haría:

  1. Tener un solo clon del repositorio.
  2. comprometerse en el default biblioteca
  3. Inicio HgWorkbench
  4. Haga clic derecho en el último conjunto de cambios en el stable biblioteca
  5. Elija una Update... en el menú emergente y presione el botón Update botón en la ventana emergente (use las opciones predeterminadas)
  6. Haga clic derecho en el último conjunto de cambios en el default biblioteca
  7. Elija una Merge with local...
  8. Si se muestra que el estado del directorio de trabajo está limpio (debería estarlo), haga clic en el Next .
  9. Si no hay conflictos de fusión (nuevamente, no debería haberlos si no desarrollas en stable) haga clic en el Next botón de nuevo
  10. Introduzca un mensaje de confirmación y haga clic en el Commit botón y la prensa Finish en el siguiente paso
  11. Haga clic derecho en el último conjunto de cambios en el stable ramifica y elige Tag..., ingrese el nombre de la etiqueta y presione el botón Add
  12. Haga clic derecho en el último conjunto de cambios en el default ramifica y elige Update... utilizando las opciones predeterminadas de nuevo

Ahora tienes una etiqueta stable rama y están de vuelta en el default rama para continuar el desarrollo. Cuando estés listo para lanzar un nuevo stable versión y luego repita los pasos anteriores desde el paso 3.

contestado el 03 de mayo de 12 a las 17:05

Eso suena mucho más limpio. Voy a probar eso por la mañana. ¡Muchas gracias! - user1372617

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.