Pomyślałem o fuzji. Chcę cofnąć, a następnie spróbować ponownie.
Czy istnieje sposób na cofnięcie scalenia, zanim zostanie ono zatwierdzone?
hg revert
nie robi tego, co bym chciał, tylko przywraca tekst plików. Mercurial przerywa moją drugą próbę scalenia i skarży się, że oryginalne scalanie jest nadal niezakończone.
Czy istnieje sposób na cofnięcie scalenia po hg merge
poleceniu, ale przed jego zatwierdzeniem?
Odpowiedzi:
hg update -C <one of the two merge changesets>
źródło
--clean
to synonim-C
. Nie jestem pewien, do którego zestawu zmian.
będzie się odnosić, ale zawsze będzie to jeden z dwóch połączonych zestawów zmian..
powinno wyczyścić do dowolnej wersji, w której byłeś przed zainicjowaniem scalania. Więc jeśli byłeś na r42, próbowałeś połączyć się z r43, nie powiodło się, wyczyszczono, byłbyś z powrotem na nieskazitelnym r42.hg update --clean
działa, jak.
wydaje się być domyślną wartością domyślną - nie jest to jednak jawnie udokumentowane ..
w kontekście scalania jest raczej niejednoznaczne.Po wykonaniu tej czynności
hg merge
, ale wcześniejhg commit
, kopia robocza ma dwóch rodziców: pierwszy element nadrzędny to zestaw zmian, do którego zostałeś zaktualizowany przed scaleniem, a drugi element nadrzędny to zestaw zmian, z którym scalasz. Mercurial nie pozwoli Ci na tohg merge
ponownie, o ile kopia robocza ma dwoje rodziców.Masz dwie możliwości postępowania:
Jeśli chcesz przerwać scalanie i wrócić do początku, zrób to
Spowoduje to zaktualizowanie kopii roboczej, aby była zgodna z pierwszym rodzicem:
.
zawsze oznacza pierwszego rodzica kopii roboczej.Jeśli chcesz ponownie scalić niektóre pliki, zrób to
Spowoduje to ponowne uruchomienie narzędzi scalania, tak jak poprzednio
hg merge
. Polecenie rozwiązywanie jest dobre, jeśli okaże się,hg merge
że narzędzia do scalania są źle skonfigurowane: napraw konfigurację i uruchomhg resolve --all
. Możesz uruchomić dowolnąhg resolve
liczbę razy, dopóki scalanie nie będzie satysfakcjonujące.źródło