È possibile riaprire una filiale chiusa in Mercurial?


132

Comprendo che è possibile chiudere una filiale denominata in Mercurial, in modo che non venga visualizzato hg branchesnell'elenco:

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

È possibile riaprire successivamente la filiale se necessario?


13
Dovresti semplicemente provarlo, il modo migliore per imparare è sperimentare, e poiché i repository sono economici con Hg, impazzisci.
Lasse V. Karlsen,

1
Piccolo segreto sporco: un "ramo" in Hg speak è solo un altro modo di dire "un'etichetta di testo associata a un commit". Un "ramo" può avere molte teste diverse per molti commit diversi che non sono correlati.
user2864740

Risposte:


164

Puoi semplicemente hg updateandare al ramo chiuso, quindi fare un altro hg commite si riaprirà automaticamente.

Il closedflag viene utilizzato solo per filtrare i rami chiusi da hg branchese hg headsse non si utilizza l' --closedopzione - non impedisce di utilizzare i rami.


20
Il commit non farà nulla a meno che non ci sia qualcosa da impegnare effettivamente, quindi potrebbe essere necessario apportare una modifica gratuita per realizzarlo.
Francis Upton IV,

1
Grazie per averlo sottolineato - avevo assunto che le modifiche fossero implicite facendo un commit, ma ovviamente se si desidera semplicemente rimuovere il flag chiuso non è possibile senza un cambiamento.
Tim Delaney,

3
Un tag è sufficiente per renderlo impegnabile.
Devlord,

Questo potrebbe funzionare dall'interfaccia della riga di comando, non l'ho ancora provato, ma TortoiseHg non ti consentirà l'aggiornamento a un ramo chiuso. Se si tenta di farlo, il pulsante Aggiorna è disabilitato. Per farlo funzionare, ho dovuto aggiornare al ramo prima della chiusura del changeset (in effetti il ​​genitore) e quindi aggiornare al close changeset. La cosa strana è che quando si aggiorna al genitore, TortoiseHg afferma che il changeset vicino (il discendente) è il genitore. Qualunque cosa, funziona bene una volta che salti attraverso i cerchi appropriati.
DaveN59,

L'ho usato (riga di comando tramite terminale in phpstorm) e funziona come un incantesimo, grazie
Mathieu Dierckx,

15

Puoi riaprire un ramo usando il flag "-f" quando "crei" il ramo.

No, questo comando creerà un nuovo ramo con lo stesso nome.

Dimentica che è chiuso. Passa al ramo, apporta le modifiche e esegui il commit. Sarà riaperto automaticamente. Quando hai finito puoi chiuderlo di nuovo.


Ho pensato che, a differenza di Git, i rami con nome Mercurial sono permanenti e che quindi i nomi dei rami non possono essere riutilizzati. Cosa sto confondendo? Sono più teste per lo stesso ramo di cui stiamo parlando?
Nate Cook,

2

prova con quanto segue:

hg pull && hg update branch_name

Ora apporta una piccola modifica a uno dei file e poi esegui il commit

 hg commit -m "minor change"

poi spingilo

hg push -b . 

Ora dovresti essere in grado di lavorare normalmente.


-3

Prova questo.

Passare al ramo chiuso prima di eseguire. (hg up closed_branch)

hg st

toccare a

aggiungere un

hg commit -m "riapre il ramo chiuso"

Questo riaprirà il ramo chiuso.


12
Questo sta aggiungendo un file vuoto inutile al repository, è sbagliato.
Rafael Piccolo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.