Respuestas:
Actualice la stigingrama y cree una nueva rama a partir de ella. Luego cierra la rama vieja.
En resumen:
hg update stiging
hg branch staging
hg commit -m"Changing stiging branch to staging."
hg update stiging
hg commit --close-branch -m"This was a typo; use staging instead."
hg push --new-branch
--force. Por ejemplo: hg branch --force v3. Esto dará como resultado la hg update v3actualización a la nueva v3sucursal, como lo deseaba.
stigingantes de bifurcarse, no obtendrá un "extremo suelto"
Para futuros lectores: con la rebaseextensión, puede crear una nueva sucursal con el mismo padre stigingy mover todo el historial de la sucursal, de esta manera:
hg update -r "parents(min(branch('stiging')))"
hg branch staging
hg commit
hg rebase --source "min(branch('stiging'))" --dest staging
Esto supone que stigingsolo tiene un padre. Por supuesto, puede usar números de revisión explícitos en su lugar.
Nota 1: Si la rama stigingincluye fusiones con otras ramas, creo que esto las preservará, siempre stagingy cuando stigingtengan el mismo padre. Pero ciertamente lo verificaría dos veces.
Nota 2: dado que esto edita el historial, la rama anterior no desaparecerá simplemente de los repositorios clonados (consulte la rebasedocumentación). A menos que todos puedan clonar de nuevo, puede que no sea una solución muy práctica para un grupo grande.
Nota 3 / Editar (cortesía de @JasonRCoombs): ahora que las fases son estándar en mercurial, rebasese negará a modificar los conjuntos de cambios que ya se han enviado. Puede engañarlo cambiando la fase de nuevo a borrador (con hg phases), o dejar que la rama anterior permanezca donde está, y simplemente hacer una copia con el nombre correcto (por ejemplo, con `hg rebase --keep ').
hg converten su lugar.
--keepal comando rebase, que copiará en lugar de mover los cambios.
abort: can't rebase immutable changeset 11b1e2b7dc4f. Tenga en cuenta que he injertado los conjuntos de cambios de otra rama en esta. Además de eso, se divide y se fusiona gratis.
.para su --destvalor, y la nueva toma tomará el nuevo nombre de la rama automáticamente.
Si tiene conjuntos de cambios, deberá usar la extensión de conversión con un mapa de rama para cambiarle el nombre. Todos tendrán que clonar el nuevo repositorio o quitar la rama vieja.
Esto modifica el historial y es solo para usuarios avanzados de Mercurial. No hagas esto si no sabes lo que eso significa.
Si el estigma es solo local, puede cambiarlo a una puesta en escena con una combinación de injerto y tira . Comience actualizando el conjunto de cambios ancestro donde el estigma había divergido. Cree la rama de preparación e injerte cada confirmación desde el estigma hasta la puesta en escena. La puesta en escena ahora debería ser una copia del estigma. Por último, destruya el estigma eliminando su primer compromiso.
hg update {SHA-1 of the ancestor changeset}
hg branch staging
hg graft {first changeset in stiging} ... {stiging head-1} {stiging head}
hg strip {first changeset in stiging}
hg push --new-branch
hg graft {first changeset in stiging}..{stiging head}