2013-08-24 10 views
5

Pracowałem w branch-a, gdy znalazłem niepowiązany błąd, który powinien zostać naprawiony w gałęzi default. Tak więc, chciałbym zatwierdzić niektóre z moich zmian na default, a następnie połączyć default w bieżącą gałąź i kontynuować pracę.hg: Zatwierdź zmiany w innym oddziale

O ile mi wiadomo, Mercurial nie zezwala na bezpośrednie zaangażowanie w inny oddział, więc najpierw musiałbym przejść do domyślnej gałęzi. Problem polega na tym, że nie mogę po prostu wypakować domyślnej gałęzi, ponieważ inne zmiany spowodowałyby konflikty. Jednym z workflow, jaki przychodzi mi do głowy, jest odkładanie, domyślne kasowanie, usuwanie niefałszowania tylko plików, które odnoszą się do poprawki, zatwierdzenia, kasowania gałęzi-a, scalania domyślnego, a na koniec nie mają wpływu na resztę plików. Czy istnieje łatwiejszy sposób, aby to osiągnąć?

Odpowiedz

0
  • popełnić tylko podzbiór plików, związanych z branch-a zmian (użyj dodatkowo moc Record Extension, jeśli naprawiające błędy oraz zmian branży-a za dzieje się w jakimś pliku (S) - dopuszczają tylko potrzebne kromkami pliku) jako changeset

Jeżeli nie masz MQ Rozszerzenie:

  • Commit resztę zmian w branch-a jako changeset B (dzieckiem)
  • rebase B (z rebase Ext ension) changeset do default gałęzi z --keep opcję w oder mieć B w oryginalnej lokalizacji również

Jeśli masz przedłużenie MQ

  • Tworzenie nowego patcha z pracą-dir zmienia
  • Wycofywanie MQ-łatę
  • Aktualizacja default
  • Zastosuj plaster
  • test, test ...
  • Finish łata (konwersja do stałego changeset)
  • Graft to changeset tylko do branch-a oddziału
+0

dzięki! Miałem tylko mgliste pojęcie o podstawach, ale teraz widzę, o co chodzi. – alekop

+0

Dobrze wiedzieć, jak to zrobić za pomocą rebase i mq-patch. Jednak półka -> przełącznik oddziału -> unshelve wydaje mi się łatwiejsza. Dzięki i tak. –

Powiązane problemy