2011-04-15 16 views
6

Para un flujo de trabajo de este tipo,Empujar múltiples cabezas con Mercurial

$hg clone <bitbucket repo> 
... fix, fix ... 
$hg commit -m "good comment!" 

$hg bookmark stable 
...new fix on stable... 
$hg commit -m "new fix on stable bookmark" 

$hg bookmark experimental --> I would like to defer merging until its stable. 
... hack hack more hack .... 
$hg commit -m "more hack on experimental" 
$created new head 

$hg push <bitbucket repo> 
"abort: push creates new remote heads!" 
(did you forget to merge? use push -f to force) 

He leído mucho decir 'usar NUNCA empuje -f para forzar'.

Pero sí, es necesario empujar el cabezal experimental, ya que no quiero unirme hasta que sea lo suficientemente estable. Tampoco quiero mantener los cambios en este marcador en mi máquina por demasiado tiempo (¿qué sucede si el sistema se cuelga?) Y me gustaría obtener este marcador y continuar con los experimentos más adelante. Es una especie de enfoque "centralizado" sin embargo. ¿Cuál es la mejor manera de lidiar con el tipo de situación? ¿Hay alguna forma de usar marcadores para manejar este flujo de trabajo? No quiero usar una rama con nombre.

Nota: Acabo de utilizar 'push -f', pero Bitbucket nunca muestra este marcador en el enlace 'Etiquetas' de los repositorios.

+1

crear las cabezas remotas y empujando marcadores no son lo mismo - recuerda a 'hg empuje bkname' -B para enviar sus marcadores, y del mismo modo, se debe tirar manualmente en bitbucket actual (dec2011) es compatible con marcadores como "ramas. ", aunque la actualización parece lenta :( –

Respuesta

11

Lo que estás haciendo está bien. El "no usar push -f" es un consejo para las personas que han retirado, tienen varias cabezas y no saben lo que eso significa.

Los marcadores no se mostrarán en bitbucket. Los conjuntos de cambios aparecerán como encabezados, por supuesto, pero los boomarks no se almacenan en el repositorio. Cuando dos versiones 1.6 o posteriores cambian conjuntos de cambios push/pull de Mercurial, transfieren marcadores fuera de banda, pero bitbucket aún no tiene soporte para eso (que yo sepa).

+2

La versión actual de bitbucket (a partir de DEC2011) admite marcadores. Deben empujarse de forma remota (' hg push -B bkname'), por supuesto, y no parecen desencadenar un "actualización" de la caché de gráficos de revisión (grr!) ... pero se muestran en "branches" ... eventualmente. –

+1

Los marcadores aún no son compatibles con las solicitudes de extracción. Consulte https://bitbucket.org/site/master ./emisión/6705/cant-crear-pull-petición-de-hg-marcador – JonnyJD

+0

Tire solicitudes de marcadores no son muy fáciles de usar, pero con el apoyo - https://stackoverflow.com/questions/21726865/how-to- create-pull-reques t-from-mercurial-bookmark-on-bitbucket –

Cuestiones relacionadas