Tak, masz dwie dobre opcje:
do szczepień: nowy w Mercurial 2,0
Ta wersja wprowadzono graft command które mogą backport zmian w inteligentny sposób. W „inteligencja” jest to, że będzie korzystał scala wewnętrznie, a to oznacza, że masz
Wsparcie zmienia nazwę: Wyobraź sobie, że naprawił błąd w pliku foo.c
na gałęzi rozwojowej. W starszej gałęzi konserwacji foo.c
nazwano bar.c
. Używając hg graft
, zmiana na foo.c
może zostać poprawnie scalona ze starym bar.c
.
trójdrożny łączy: Szczepienie polega twisting the graph around i wtopienie się w tym tymczasowym wykresie. Zaletą łączenia w jedną stronę jest to, że można używać zwykłego narzędzia do scalania graficznego w celu rozwiązywania konfliktów.
Aby skopiować końcówkę default
na old-branch
po prostu uruchomić
$ hg update old-branch
$ hg graft default
transplantacji: starsze wersje
Przed mieliśmy polecenie przeszczepu The transplant extension była droga. To proste rozszerzenie wyeksportuje zestaw zmian jako poprawkę i spróbuje zastosować poprawkę do innej wersji.
Ponieważ mamy do czynienia z "głupimi" łatami, rzeczy takie jak nazwy nie będą brane pod uwagę i nie otrzymasz wsparcia dla twojego narzędzia scalania, ponieważ nie ma trójstronnego scalenia. Mimo to, stwierdziłem, że przeszczep działa naprawdę dobrze w praktyce.
Korzystanie przeszczep jest prosta:
$ hg update old-branch
$ hg transplant default
Jest bardzo blisko do prowadzenia
$ hg update old-branch
$ hg export default | hg import -
wyjątkiem tego, że przeszczep również dodaje kawałek meta danych, który rejestruje oryginalny changeset w przeszczepionej changeset. Może to zostać wykorzystane do pominięcia przyszłych przeszczepów.
http://stackoverflow.com/questions/854930/mercurial-cherry-picking-changes-for-commit – zerkms
Uważam to najłatwiejszy jeśli „głównej gałęzi rozwojowej” to samo drzewo, gdzie są różne zmiany w ich własnych ("anonimowe") gałęzie, które rosną, a następnie wracają do ... –
(brak odpowiedzi, stąd komentarz) * "Myślę, że lepiej byłoby dokonać zmiany na starszym oddziale" * ...To * może * było jeszcze lepiej zastosować tę poprawkę jako "daggy fix": cofasz się do miejsca, w którym błąd został wprowadzony, zatwierdzasz swoją poprawkę i scalasz wcześniej. Stosowanie go "tak wcześnie, jak to możliwe" * może * być nawet lepsze niż zastosowanie najpierw do "starszego oddziału" (cokolwiek to jest). W przypadku małych poprawek daggy fix do total rock (IMHO): http://mercurial.selenic.com/wiki/DaggyFixes – TacticalCoder