Czy można ponownie otworzyć zamknięty oddział w Mercurial?


132

Rozumiem, że istnieje możliwość zamknięcia nazwanego oddziału w Mercurial, aby nie pojawiał się na hg branchesliście:

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

Czy w razie potrzeby można później ponownie otworzyć oddział?


13
Powinieneś po prostu spróbować, najlepszym sposobem nauki jest eksperymentowanie, a ponieważ repozytoria są tanie z Hg, po prostu zaszalej.
Lasse V. Karlsen

1
Brudny mały sekret: „gałąź” w języku Hg to po prostu inny sposób powiedzenia „etykiety tekstowej związanej z zatwierdzeniem”. „Gałąź” może mieć wiele różnych głowic do wielu różnych zatwierdzeń, które nie są powiązane.
user2864740

Odpowiedzi:


164

Możesz po prostu hg updateprzejść do zamkniętej gałęzi, a następnie zrobić inną, hg commita ona automatycznie otworzy się ponownie.

closedFlaga jest po prostu stosować do odfiltrowania zamkniętych oddziałów z hg branchesi hg headschyba użyć --closedopcji - nie uniemożliwia korzystanie z gałęzi.


20
Zatwierdzenie nic nie da, chyba że jest coś do rzeczywistego zatwierdzenia, więc może być konieczne dokonanie nieuzasadnionej zmiany, aby to się stało.
Francis Upton IV

1
Dziękuję za wskazanie tego - założyłem, że zmiany są implikowane przez wykonanie zatwierdzenia, ale oczywiście jeśli chcesz po prostu usunąć flagę zamknięcia, nie możesz bez zmiany.
Tim Delaney

3
Znacznik jest wystarczający, aby był zatwierdzony.
devlord

Może to działać z interfejsu wiersza poleceń, jeszcze tego nie próbowałem, ale TortoiseHg nie pozwoli ci zaktualizować do zamkniętej gałęzi. Jeśli spróbujesz to zrobić, przycisk Aktualizuj jest wyłączony. Aby to zadziałało, musiałem zaktualizować gałąź przed zamknięciem zestawu zmian (w zasadzie rodzica), a następnie zaktualizować do zamkniętego zestawu zmian. Dziwne jest to, że kiedy aktualizujesz do rodzica, TortoiseHg twierdzi, że bliski zestaw zmian (potomek) jest rodzicem. Cokolwiek, działa dobrze, gdy przeskoczysz przez odpowiednie obręcze.
DaveN59

Użyłem go (linia poleceń przez terminal w phpstorm) i działa jak urok, dzięki
Mathieu Dierckx

15

Możesz ponownie otworzyć gałąź, używając flagi „-f” podczas 'tworzenia' gałęzi.

Nie, to polecenie utworzy nową gałąź o tej samej nazwie.

Po prostu zapomnij, że jest zamknięty. Przełącz się na gałąź, wprowadź zmiany i zatwierdź. Zostanie automatycznie ponownie otwarty. Kiedy skończysz, możesz go ponownie zamknąć.


Pomyślałem, że w przeciwieństwie do Git, nazwane gałęzie Mercurial są trwałe i dlatego nazwy tych gałęzi nie mogą być ponownie użyte. Co ja mylę? Czy jest to wiele głów dla tej samej gałęzi, o której mówimy?
Nate Cook

2

spróbuj z następującymi:

hg pull && hg update branch_name

Teraz dokonaj niewielkiej zmiany w jednym z plików, a następnie zatwierdź go

 hg commit -m "minor change"

następnie popchnij

hg push -b . 

Teraz powinieneś być w stanie normalnie pracować.


-3

Spróbuj tego.

Przełącz się do zamkniętej gałęzi przed wykonaniem. (hg up closed_branch)

hg św

dotknij a

dodać

hg commit -m 'ponowne otwieranie zamkniętej gałęzi'

Spowoduje to ponowne otwarcie zamkniętej gałęzi.


12
To jest dodanie bezużytecznego, pustego pliku do repozytorium, jest źle.
Rafael Piccolo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.