É possível reabrir uma filial fechada no Mercurial?


132

Entendo que é possível fechar uma ramificação nomeada no Mercurial, para que ela não apareça na hg brancheslista:

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

É possível reabrir posteriormente a filial, se necessário?


13
Você deve simplesmente tentar, a melhor maneira de aprender é experimentar e, como os repositórios são baratos com o Hg, basta ir à loucura.
Lasse V. Karlsen

1
Pequeno segredo sujo: um "ramo" no Hg speak é apenas outra maneira de dizer "um rótulo de texto associado a um commit". Um "ramo" pode ter muitas cabeças diferentes para muitas confirmações diferentes que não estão relacionadas.
usar o seguinte comando

Respostas:


164

Você pode simplesmente hg updateacessar a ramificação fechada e fazer outra, hg commite ela será reaberta automaticamente.

O closedsinalizador é usado apenas para filtrar ramificações fechadas hg branchese, a hg headsmenos que você use a --closedopção - não impede que você use as ramificações.


20
A confirmação não fará nada, a menos que haja algo a ser realmente confirmado; portanto, você pode precisar fazer uma alteração gratuita para que isso aconteça.
Francis Upton IV

1
Obrigado por apontar - eu assumi que as alterações foram implícitas ao fazer uma confirmação, mas é claro que se você simplesmente deseja remover a sinalização fechada, não pode fazer sem uma alteração.
Tim Delaney

3
Uma tag é suficiente para torná-la comprometível.
devlord

Isso pode funcionar na interface da linha de comando, ainda não tentei, mas o TortoiseHg não permitirá que você atualize para um ramo fechado. Se você tentar fazer isso, o botão Atualizar será desabilitado. Para fazer isso funcionar, eu tive que atualizar para a ramificação antes do fechamento do conjunto de alterações (efetivamente o pai) e atualizá-lo para o conjunto de alterações próximo. O estranho é que, quando você atualiza para o pai, o TortoiseHg afirma que o conjunto de alterações próximo (o descendente) é o pai. Seja como for, ele funciona muito bem quando você pula pelos aros adequados.
21415 Dave155

Usou-(linha de comando através do terminal no phpstorm) e funciona como um encanto, graças
Mathieu Dierckx

15

Você pode reabrir uma ramificação usando o sinalizador "-f" ao 'criar' a ramificação.

Não, este comando criará uma nova ramificação com o mesmo nome.

Apenas esqueça que está fechado. Mude para o ramo, faça as alterações e confirme. Será reaberto automaticamente. Quando terminar, você pode fechá-lo novamente.


Eu pensei que, diferentemente do Git, os ramos denominados Mercurial são permanentes e, portanto, os nomes dos ramos não podem ser reutilizados. O que eu estou confundindo? São várias cabeças para o mesmo ramo que estamos falando?
Nate Cook

2

tente com o seguinte:

hg pull && hg update branch_name

Agora faça uma pequena alteração em um dos arquivos e confirme

 hg commit -m "minor change"

então empurre

hg push -b . 

Agora você deve poder trabalhar normalmente.


-3

Tente isso.

Alterne para a ramificação fechada antes de executar. (hg up_branch)

hg st

toque um

adicione um

hg commit -m 'reabrindo a ramificação fechada'

Isso reabrirá a ramificação fechada.


12
Isso está adicionando um arquivo vazio inútil ao repositório, está errado.
Rafael Piccolo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.