Agora temos um ramo "stiging", onde "staging" parece ser um ajuste semântico muito melhor. Qual é uma boa estratégia para lidar com isso?
205
Atualize para a stiging
ramificação e crie uma nova ramificação. Depois feche o ramo antigo.
Em suma:
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 exemplo:hg branch --force v3
. Isso resultará nahg update v3
atualização para o novov3
ramo, conforme desejado.stiging
antes de ramificação, você não obter um "ponta solta"Para futuros leitores: Com a
rebase
extensão, você pode criar uma nova ramificação com o mesmo paistiging
e mover para ela todo o histórico da ramificação, assim:Isso pressupõe que
stiging
tenha apenas um pai. Claro que você pode usar números de revisão explícitos.Nota 1: Se o ramo
stiging
inclui mesclagens com outros ramos, acho que isso os preservará, desde questaging
estiging
tenha o mesmo pai. Mas eu certamente checaria duas vezes.Nota 2: Como isso edita o histórico, a ramificação antiga simplesmente não desaparece dos repositórios clonados (consulte a
rebase
documentação). A menos que todos possam clonar novamente, talvez não seja uma solução muito prática para um grande grupo.Nota 3 / Edit (cortesia de @JasonRCoombs): Agora que as fases são padrão em mercurial,
rebase
se recusará a modificar conjuntos de alterações que já foram enviados. Ou engane-o, alterando a fase de volta para rascunho (comhg phases
), ou deixe o ramo antigo permanecer onde está e faça uma cópia com o nome apropriado (por exemplo, com `hg rebase --keep ').fonte
hg convert
.--keep
para o comando rebase, que copiará em vez de mover as alterações.abort: can't rebase immutable changeset 11b1e2b7dc4f
. Observe que eu tenho enxertado conjuntos de alterações de outro ramo neste. Além disso, é dividido e mesclado gratuitamente..
como--dest
valor e a rebase assumirá o novo nome da ramificação automaticamente.Se você possui conjuntos de alterações, precisará usar a extensão convert com um mapa da filial para renomeá-lo. Todos terão que clonar o novo repositório ou retirar o ramo antigo.
fonte
Faça um novo ramo chamado "estadiamento" e esqueça o outro ...
fonte
Isso modifica o histórico e é apenas para usuários avançados do Mercurial. Não faça isso se você não souber o que isso significa.
Se o stiging for apenas local, você poderá alterá-lo para estadiamento com uma combinação de enxerto e tira . Comece atualizando para o changeset ancestral onde a divergência foi divergente. Crie a ramificação temporária e enxerte cada confirmação, desde a classificação até a preparação. O teste agora deve ser uma cópia do stiging. Por fim, destrua o stiging retirando seu primeiro commit.
fonte
hg graft {first changeset in stiging}..{stiging head}