¿Es posible reabrir una sucursal cerrada en Mercurial?

132

Entiendo que es posible cerrar una rama con nombre en Mercurial, para que no aparezca en la hg brancheslista:

hg commit --close-branch -m 'close badbranch, this approach never worked'

¿Es posible volver a abrir la sucursal si es necesario?

Lóránt Pintér
fuente
13
Simplemente debe probarlo, la mejor manera de aprender es experimentar, y dado que los repositorios son baratos con Hg, simplemente enloquezca.
Lasse V. Karlsen
1
Pequeño secreto sucio: una "rama" en Hg speak es solo otra forma de decir "una etiqueta de texto asociada con un commit". Una "rama" puede tener muchas cabezas diferentes para muchas confirmaciones diferentes que no están relacionadas.
user2864740

Respuestas:

164

Puede hg updateir a la rama cerrada y luego hacer otra hg commity se volverá a abrir automáticamente.

La closedbandera solo se usa para filtrar ramas cerradas hg branchesy, a hg headsmenos que use la --closedopción, no le impide usar las ramas.

Tim Delaney
fuente
20
La confirmación no hará nada a menos que haya algo para confirmar, por lo que es posible que deba realizar un cambio gratuito para que esto suceda.
Francis Upton IV
1
Gracias por señalarlo: supuse que los cambios estaban implícitos al realizar una confirmación, pero, por supuesto, si simplemente desea eliminar la bandera cerrada, no puede hacerlo sin un cambio.
Tim Delaney
3
Una etiqueta es suficiente para que sea commitable.
Devlord
Esto puede funcionar desde la interfaz de línea de comandos, aún no lo he probado, pero TortoiseHg no le permitirá actualizar a una rama cerrada. Si intenta hacerlo, el botón Actualizar está deshabilitado. Para que esto funcione, tuve que actualizar a la rama antes del conjunto de cambios de cierre (efectivamente el padre) y luego actualizar al conjunto de cambios de cierre. Lo extraño es que, cuando actualiza al padre, TortoiseHg afirma que el conjunto de cambios cercano (el descendiente) es el padre. Lo que sea, funciona bien una vez que saltas a través de los aros adecuados.
DaveN59
Lo usó (línea de comando a través de la terminal en phpstorm) y funciona de maravilla, gracias
Mathieu Dierckx
15

Puede volver a abrir una rama utilizando el indicador "-f" al 'crear' la rama.

No, este comando creará una nueva rama con el mismo nombre.

Solo olvida que está cerrado. Cambie a la rama, realice los cambios y comprométase. Se reabrirá automáticamente. Cuando haya terminado, puede cerrarlo nuevamente.

Rafael Piccolo
fuente
Pensé que, a diferencia de Git, las ramas con nombre de Mercurial son permanentes, y que los nombres de las ramas, por lo tanto, no pueden reutilizarse. ¿Qué estoy confundiendo? ¿Son varias cabezas para la misma rama de la que estamos hablando?
Nate Cook,
2

intente con lo siguiente:

hg pull && hg update branch_name

Ahora haga un pequeño cambio en uno de los archivos y luego confírmelo

 hg commit -m "minor change"

luego empujarlo

hg push -b . 

Ahora deberías poder trabajar normalmente.

Dipendra
fuente
-3

Prueba esto.

Cambie a la rama cerrada antes de ejecutar. (hg arriba de rama cerrada)

hg st

tocar un

Agrega un

hg commit -m 'reabrir la rama cerrada'

Esto volverá a abrir la rama cerrada.

Geetanjali
fuente
12
Esto está agregando un archivo vacío inútil al repositorio, está mal.
Rafael Piccolo