source software for espaƱol mercurial branch dvcs

software - mercurial vs git



creando una nueva rama en mercurial: "abortar: empujar crea una nueva cabeza remota" (3)

Estoy tratando de hacer algo muy simple: crear una nueva rama. Pero me equivoqué. ¿Dónde cometí el error y cómo lo soluciono?

Soy el único usuario de Mercurial. Tenía la revisión 54 comprometida y empujada al repositorio remoto. Quería crear una rama basada en la revisión 53, así que actualicé mi copia local a la revisión 53, realicé cambios y los confirmé (ignorando la advertencia sobre "no es la cabeza"). Entonces, cuando estoy tratando de empujar al repositorio remoto, dice

abort: push creates new remote head

¿Tal vez necesitaba decirle a Mercurial que quiero crear una nueva sucursal? Si es así, ¿cómo y en qué punto?

¡Gracias!


Hice esto. Usando TortoiseHg ... así es como lo arreglé:

En la configuración, habilité la extensión Strip y luego hice clic derecho en la rama que no quería, Historial modificado - strip. Si ha presionado, entonces debe eliminarse de todos los demás repositorios, incluidos los compañeros de trabajo que hayan retirado su rama no deseada.

Una alternativa es combinar la rama no deseada en su rama principal, pero no tome ninguno de los cambios de esa rama; no estoy seguro de cómo funciona ese mecanismo.


Le dices a Mercurial que puede seguir adelante.

$ hg push --force

Debe forzarlo, ya que normalmente no se recomiendan varias cabezas (sin nombre). El problema con ellos es que las personas que clonan el repositorio no saben cuál usar. Pero como eres el único usuario, puedes seguir adelante y presionar.

La alternativa es usar una rama con nombre (con hg branch ) y luego usarás

$ hg push --new-branch

para permitir la creación de una nueva rama en el control remoto. Las ramas nombradas tienen la ventaja de que facilitan la distinción entre las dos ramas. Tienen la desventaja de que son permanentes. Permanente significa que no puede eliminar el nombre de la rama de los conjuntos de cambios en la rama; el nombre está literalmente integrado directamente en el conjunto de cambios.

Bookmarks proporcionan una forma de tener nombres de sucursales no permanentes, consulte hg help bookmarks .


Otra razón para este error: probablemente haya algunos cambios NO RECOMERADOS desde el repositorio central en su rama predeterminada.

hg up default hg merge hg ci -m "Merge" hg pus