Mamy teraz gałąź „przeszywającą”, gdzie „inscenizacja” wydaje się znacznie lepszym dopasowaniem semantycznym. Jaka jest dobra strategia radzenia sobie z tym?
204
Zaktualizuj stiging
gałąź i utwórz z niej nową gałąź. Następnie zamknij stary oddział.
W podsumowaniu:
hg update stiging
hg branch staging
hg commit -m"Changing stiging branch to staging."
hg update stiging
hg commit --close-branch -m"This was a typo; use staging instead."
hg push --new-branch
--force
. Na przykład:hg branch --force v3
. Spowoduje tohg update v3
aktualizację do nowejv3
gałęzi, tak jak chcesz.stiging
przed rozgałęzieniem, nie dostaniesz „luźnego końca”Dla przyszłych czytelników: Dzięki temu
rebase
rozszerzeniu możesz utworzyć nowy oddział z tym samym rodzicem costiging
i przenieść do niego całą historię oddziału, jak poniżej:Zakłada się, że
stiging
ma tylko jednego rodzica. Oczywiście zamiast tego możesz użyć wyraźnych numerów wersji.Uwaga 1: Jeżeli oddział
stiging
obejmuje łączy się z innymi oddziałami, ja myślę , że to będzie ich utrzymanie, jak długostaging
istiging
mają tego samego rodzica. Ale na pewno sprawdzę jeszcze raz.Uwaga 2: Ponieważ to edytuje historię, stara gałąź nie zniknie ze sklonowanych repozytoriów (patrz
rebase
dokumentacja). Jeśli wszyscy nie będą mogli klonować od nowa, może to nie być bardzo praktyczne rozwiązanie dla dużej grupy.Note3 / Edit (dzięki uprzejmości @JasonRCoombs): Teraz, gdy fazy są standardowe w mercurial,
rebase
odmówi modyfikacji zestawów zmian, które zostały już wprowadzone. Oszukaj go, zmieniając fazę z powrotem na wersję roboczą (za pomocąhg phases
) lub pozwól, aby stara gałąź pozostała tam, gdzie jest, i po prostu zrób odpowiednio nazwaną kopię (np. Z `hg rebase --keep ').źródło
hg convert
zamiast tego.--keep
do polecenia rebase, które skopiuje zamiast przenieść zmiany.abort: can't rebase immutable changeset 11b1e2b7dc4f
. Zauważ, że przeszczepiłem zestawy zmian z innej gałęzi do tej. Poza tym jest podzielony i nie łączy się..
dla swojej--dest
wartości, a baza automatycznie przyjmie nazwę nowej gałęzi.Jeśli masz na nim zestawy zmian, będziesz musiał użyć rozszerzenia konwersji z mapą gałęzi, aby zmienić jego nazwę. Następnie wszyscy będą musieli sklonować nowe repozytorium lub usunąć starą gałąź.
źródło
Utwórz nowy oddział o nazwie „inscenizacja” i zapomnij o drugim ...
źródło
To modyfikuje historię i jest przeznaczone tylko dla zaawansowanych użytkowników Mercurial. Nie rób tego, jeśli nie wiesz, co to znaczy.
Jeśli szycie jest lokalne, możesz zmienić je na inscenizację za pomocą kombinacji przeszczepu i paska . Zacznij od aktualizacji do zestawu zmian przodka, w którym rozchodziło się szarpanie. Stwórz gałąź przemieszczania i przeszczep każdą zatwierdzenie od napadu do inscenizacji. Inscenizacja powinna być teraz kopią znamienia. Na koniec zniszcz stygnięcie, usuwając pierwsze zatwierdzenie.
źródło
hg graft {first changeset in stiging}..{stiging head}