2009-10-22 17 views
6

Jak rozkłada się pliki rtęci mercurial? Co się stanie, jeśli utworzę gałąź i podzielę plik. Czy mogę łatwo pobrać zmiany z innego oddziału, które modyfikuje oryginalny, nieopisany plik?W jaki sposób pliki podzielone na rączki Mercurial?

+1

Co masz na myśli, mówiąc o "podzielonych plikach"? Masz na myśli, że tworzysz gałąź, a następnie dzielisz zawartość pliku na dwa nowe pliki? A może chodzi ci tylko o zmianę pliku w obu oddziałach? –

+1

Jestem w programowaniu i planuję podzielić klasę Boga na kilka mniejszych klas. Oznacza to, że chcę podzielić zawartość pliku klasy Boga w mojej gałęzi na kilka innych plików. Chciałbym wiedzieć, czy mercurial może następnie zastosować porcje/zmiany, które zostały wykonane w oryginalnym pliku (w domyślnej gałęzi), na przykład do funkcja, która teraz znajduje się w innym pliku w mojej gałęzi refaktoryzacji. –

Odpowiedz

2

Po przeczytaniu komentarza z wyjaśnieniem odpowiedź brzmi: nie. Mercurial śledzi pliki, a nie bryły kodu, więc nie może tego zrobić, o ile wiem.

7

Po prostu zrobiłem mały eksperyment. Stworzyłem jedno repozytorium (foo) z jednym dużym plikiem. Następnie sklonowałem to do bar, użyłem hg cp, aby skopiować plik na dwa pliki i usunięto połowę z obu plików. Następnie wprowadziłem zmianę wpływającą na cały plik w foo i połączyłem go w bar.

W wyniku tego części zawarte w odpowiednim pliku podziału zostały scalone poprawnie, podczas gdy wystąpił konflikt dotyczący usuniętych części: moja wersja lokalna była pusta, podczas gdy druga wersja była zmianą z foo.

Więc jeśli jesteś zadowolony z usuwania tego rodzaju konfliktów za każdym razem, gdy się scalisz, może to być dla Ciebie wystarczająco dobre.