W starych dobrych czasach Subversion, czasami wyprowadzałem nowy plik z istniejącego pliku używając svn copy
. Jeśli coś zmieniło się w częściach, które miały ze sobą wspólnego, nadal mógłbym użyć wersji svn merge
, aby zaktualizować wersję pochodną.Czy w Mercurial mogę zastosować zmiany z jednego pliku do innego pliku w tej samej gałęzi?
Aby użyć przykładu z , powiedzmy, że przepis "guac" już istnieje i chcę utworzyć "superguac", który zawiera instrukcje, jak podawać guacamole 1000 fanom piłki nożnej. Korzystając z opisanego właśnie procesu, mogłem:
svn cp guac superguac
svn ci -m "Created superguac by copying guac"
(edit superguac)
svn ci -m "Added instructions for serving 1000 raving soccer fans to superguac"
(edit guac)
svn ci -m "Fixed a typo in guac"
svn merge -r3:4 guac superguac
, a zatem poprawka literowa zostanie zastosowana do superguac.
Mercurial dostarcza komendę hg copy
, która oznacza plik jako kopię oryginału, ale nie jestem pewien, czy struktura repozytorium obsługuje podobny przepływ pracy. Oto przykład taka sama, a ja uważnie edytować tylko jeden plik w popełnić chcę używać w korespondencji seryjnej:
hg cp guac superguac
hg ci -m "Created superguac by copying guac"
(edit superguac)
hg ci -m "Added instructions for serving 1000 raving soccer fans to superguac"
(edit guac)
hg ci -m "Fixed a typo in guac"
Teraz chcę, aby zastosować zmianę w guac to obowiązkowa pozycja do superguac. Czy to jest możliwe? Jeśli tak, to jaka jest właściwa komenda? Czy istnieje inny przepływ pracy w Mercurial, który osiąga takie same wyniki (ograniczone do jednego oddziału)?
uznaję ten konkretny przykład jest dość łatwy w użyciu oddziałów i przekształcenie Mercurial rozwiązuje tę sytuację trywialnie. Niestety, w mojej prawdziwej aplikacji potrzebuję obu plików w tej samej gałęzi, stąd moja trudność ... – Stephen
Po przemyśleniu tego więcej (i przetestowaniu obu rozwiązań w moim repozytorium), myślę, że obie odpowiedzi mają zalety. Gdybym znał wcześniej odpowiedź Rudiego, wszystkie modyfikacje mające zastosowanie do obu plików mogłyby skorzystać z jego metody. Niestety, ponieważ edytowałem oba pliki po kopii, rozwiązanie Ry4an zapewnia mi obejście tego problemu. Dziękuję im obu! – Stephen