2010-11-04 16 views
117

Capisco che è possibile chiudere un ramo chiamato in Mercurial, in modo che non compare nella lista hg branches:È possibile riaprire un ramo chiuso in Mercurial?

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

E 'possibile poi riaprire il ramo, se necessario?

+13

Dovresti semplicemente provarlo, il modo migliore per imparare è sperimentare, e dal momento che i repository sono economici con Hg, basta impazzire. –

+0

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

risposta

144

È possibile solo hg update per il ramo chiuso, quindi fare un altro hg commit e si riaprirà automaticamente.

Il closed bandiera è solo utilizzato per filtrare i rami chiusi da hg branches e hg heads a meno che non si utilizza l'opzione --closed - non vi impedisce di utilizzare i rami.

+18

Il commit non farà nulla a meno che non ci sia qualcosa da impegnare realmente, quindi potrebbe essere necessario apportare una modifica gratuita per farlo accadere. –

+1

Grazie per avermelo fatto notare - ho pensato che le modifiche fossero implicite facendo un commit, ma ovviamente se vuoi semplicemente rimuovere il flag chiuso non puoi cambiarlo. –

+2

Un tag è sufficiente per renderlo accettabile. – devlord

14

È possibile riaprire un ramo utilizzando il flag "-f" quando si "crea" il ramo.

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

Basta dimenticare che è chiuso. Passare al ramo, apportare le modifiche e commit. Sarà riaperto automaticamente. Quando hai finito puoi chiuderlo di nuovo.

+0

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

-1

Prova questo.

Passare al ramo chiuso prima dell'esecuzione. (Hg fino closed_branch)

hg st

tocco un

aggiungere un

hg commit -m 'riaprire il ramo chiuso'

Questa riaprirà il ramo chiuso.

+10

Questo sta aggiungendo un file vuoto inutile al repository, è sbagliato. –

1

provare con i seguenti:

hg pull && hg update branch_name 

Ora fare una piccola modifica a uno dei file e quindi commetterlo

hg commit -m "minor change" 

poi spingerlo

hg push -b . 

Ora si dovrebbe essere in grado di funzionare normalmente.

Problemi correlati