É 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?

Lóránt Pintér
fonte
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.

Tim Delaney
fonte
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.

Rafael Piccolo
fonte
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.

Dipendra
fonte
-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.

Geetanjali
fonte
12
Isso está adicionando um arquivo vazio inútil ao repositório, está errado.
Rafael Piccolo