2010-11-04 3 views
117

Ich verstehe, dass es möglich ist, eine benannte Niederlassung in Mercurial zu schließen, so dass es nicht in der hg branches Liste erscheint:Ist es möglich, einen geschlossenen Zweig in Mercurial wieder zu öffnen?

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

Ist es möglich sein, den Zweig öffnet wieder, wenn nötig später?

+13

Sie sollten es einfach versuchen, der beste Weg zu lernen ist zu experimentieren, und da Repositories mit Hg billig sind, einfach wild gehen. –

+0

Dreckiges kleines Geheimnis: ein "Zweig" in Hg sprechen ist nur eine andere Art zu sagen "ein Text-Label mit einem Commit verbunden". Ein "Zweig" kann viele verschiedene Köpfe zu vielen verschiedenen Commits haben, die nicht verwandt sind. – user2864740

Antwort

144

Sie können nur hg update in den geschlossenen Zweig dann tun Sie eine weitere hg commit und es wird automatisch wieder geöffnet.

Die closed Flag wird nur verwendet, um aus hg branches geschlossenen Filialen zum Ausfiltern und hg heads, wenn Sie die --closed Option - es Ihnen nicht um die Zweige verwenden, nicht verhindert.

+18

Das Commit wird nichts tun, es sei denn, es gibt etwas, das tatsächlich begangen werden kann, also müssen Sie möglicherweise eine kostenlose Änderung vornehmen, um es zu ermöglichen. –

+1

Danke, dass Sie darauf hingewiesen haben - ich hatte angenommen, dass Änderungen durch einen Commit impliziert wurden, aber wenn Sie einfach die geschlossene Flagge entfernen möchten, können Sie das natürlich nicht ändern. –

+2

Ein Tag ist ausreichend, um es bindbar zu machen. – devlord

14

Sie können eine Verzweigung erneut öffnen, indem Sie beim Erstellen der Verzweigung die Markierung "-f" verwenden.

Nein, dieser Befehl erstellt einen neuen Zweig mit demselben Namen.

Vergiss einfach, dass es geschlossen ist. Wechseln Sie zum Zweig, nehmen Sie die Änderungen vor und übernehmen Sie den Commit. Es wird automatisch wieder geöffnet. Wenn Sie fertig sind, können Sie es wieder schließen.

+0

Ich dachte, dass im Gegensatz zu Git, Mercurial benannte Zweige permanent sind, und dass Zweig Namen daher nicht wiederverwendet werden können. Was ich verwirre? Sind es mehrere Köpfe für dieselbe Branche, von der wir sprechen? –

-1

Versuchen Sie es.

Vor dem Ausführen in den geschlossenen Zweig wechseln. (Hg up closed_branch)

hg st

Touch a

hinzufügen

hg commit -m 'die geschlossene Zweigwiedereröffnung'

Dies wird die geschlossene Filiale wieder öffnen.

+10

Dies fügt dem Repository eine nutzlose leere Datei hinzu, es ist falsch. –

1

versuchen, mit folgenden:

hg pull && hg update branch_name 

nun eine kleine Änderung der Datei machen und dann begehen sie

hg commit -m "minor change" 

dann schieben

hg push -b . 

Jetzt sollten Sie sein normal arbeiten können.

Verwandte Themen