Manuals

Tworzenie i stosowanie poprawek

Dla projektów open source (jak ten) każdy ma dostęp do odczytu repozytorium, i każdy może przyczynić się do rozwoju projektu. Jak zatem kontrolować te udziały? Jeśli każdy może zatwierdzić zmiany, projekt zostanie trwale zdestabilizowany i prawdopodobnie na stałe uszkodzony. W takiej sytuacji zmiany są zarządzane przez złożenie pliku poprawki do zespołu programistów, którzy mają dostęp do zapisu. Mogą oni najpierw przejrzeć poprawki, a potem albo dodać go do repozytorium lub odrzucić z powrotem do autora.

Pliki poprawki są po prostu plikami różnicowymi w formacie Unified-Diff pokazującymi różnice między kopią roboczej a wersją bazy.

Tworzenie pliku poprawki

Najpierw musicie wprowadzić i przetestować zmiany. Wtedy zamiast TortoiseSVNZatwierdź... na folderze nadrzędnym należy wybrać TortoiseSVNTwórz plik poprawek...

Rysunek 4.63. Okno dialogowe tworzenia pliku poprawek

Okno dialogowe tworzenia pliku poprawek

można teraz wybrać pliki, które chcecie zawrzeć w poprawce, tak samo jak przy pełnym zatwierdzeniu. Utworzy to jeden plik zawierający zestawienie wszystkich dokonanych zmian do wybranych plików od ostatniej aktualizacji z repozytorium.

Kolumny w tym oknie można dostosować w ten sam sposób, jak kolumny w dialogu Sprawdź zmiany. Czytajcie „Status lokalny i zdalny” dla dalszych szczegółów.

Klikając na przycisk Opcje można określić, jak poprawka jest tworzona. Na przykład można określić, że zmiany w zakończeń linii lub białych znaków nie są włączone do końcowej poprawki.

Można stworzyć oddzielne poprawki zawierające zmiany dla różnych zestawów plików. Oczywiście, jeśli tworzycie plik poprawki, następnie dodajecie kolejne zmiany w tym samym pliku, po czym utworzycie nową poprawkę, druga poprawka będzie zawierała oba zestawy zmian.

Wystarczy zapisać plik do używając wybranej przez siebie nazwy. Pliki poprawek mogą mieć dowolne rozszerzenia, ale zwyczajowo powinny korzystać z rozszerzenia .patch lub .diff. Teraz jesteśmy gotowi do złożenia pliku poprawki.

Podpowiedź

nie zapisujcie pliku poprawki z rozszerzeniem .txt jeśli chcecie wysłać go pocztą elektroniczną do kogoś innego. Pliki tekstowe są często zniekształcane przez programy pocztowe i często zdarza się że białe znaki i znaki nowej linii są automatycznie przekształcane i pakowane. Gdy tak się dzieje, poprawka nie zostanie prawidłowo zastosowana. Należy użyć .patch lub .diff jako rozszerzenia podczas zapisywania pliku poprawki.

Można również zapisać poprawkę do schowka zamiast do pliku. Jest to wygodne, gdyż można treść wkleić do e-maila aby inni ją ocenili. Albo, jeśli macie dwie kopie robocze na jednym komputerze i chcecie przenieść zmiany z jednej do drugiej, poprawka w schowku stanowi wygodny sposób na zrobienie tego.

Jeśli wolicie, możecie utworzyć plik poprawki z okien dialogowych Zatwierdź zmiany oraz Sprawdź zmiany. Wystarczy wybrać pliki i skorzystać z menu kontekstowego by stworzyć poprawkę z tych plików. Jeśli chcecie zobaczyć okno Opcje musicie przytrzymać shift podczas kliknięcia prawym przyciskiem myszy.

Stosowanie pliku poprawki

Pliki poprawek są stosowane do kopii roboczej. Należy to zrobić na tym samym poziomie folderu, jaki został wykorzystany do stworzenia patcha. Jeśli nie jesteście pewni, gdzie on jest, wystarczy spojrzeć na pierwszą linię pliku patch. Na przykład, jeśli pierwszy przetworzony plik miał ścieżkę doc/source/english/chapter1.xml i pierwsza linia w pliku poprawki brzmi Index: english/chapter1.xml to trzeba zastosować poprawkę do folderu doc/source/. Jednak pod warunkiem, że znajdujecie się w poprawnej kopii roboczej, jeśli wybierzecie niewłaściwy poziom folderu, TortoiseSVN wyświetli uwagę i zaproponuje odpowiedni poziom.

Aby zastosować plik poprawki do kopii roboczej, trzeba mieć co najmniej dostęp do odczytu repozytorium. Powodem tego jest fakt, że program musi połączyć odniesienia zmian z powrotem do wersji na których zostały one wykonane przez zdalnego dewelopera.

Z menu kontekstowego na tym folderze kliknijcie na TortoiseSVNZastosuj poprawkę... Spowoduje to wyświetlenie okna dialogowego otwarcia pliku umożliwiającego wybranie pliku poprawki do zastosowania. Domyślnie tylko pliki z rozszerzeniami .patch lub .diff są wyświetlane, ale można wybrać Wszystkie pliki. Jeśli wcześniej zapisaliście patch do schowka, można użyć Otwórz ze schowka... w oknie otwarcia pliku. Warto podkreślić, że ta opcja pojawia się tylko wtedy wprowadzono poprawkę do schowka przy użyciu TortoiseSVNTwórz plik poprawek.... Skopiowanie poprawki do schowka z innej aplikacji nie spowoduje wyświetlania przycisku.

Alternatywnie, jeśli patch ma rozszerzenie .patch lub .diff, można kliknąć prawym przyciskiem myszy na nim bezpośrednio i wybrać TortoiseSVNZastosuj poprawkę.... W tym przypadku pojawi się monit o podanie lokalizacji kopii roboczej.

Te dwie metody tylko wykonują to samo na dwa sposoby. Używając pierwszej metody wybiera się KR i przechodzi do pliku poprawek. Przy drugiej wybiera się plik poprawki i przechodzi do KR.

Po wybraniu pliku poprawki i lokalizacji kopii roboczej, TortoiseMerge wykonuje próbę scalenia zmian z pliku poprawki z kopią roboczą. Małe okno wyświetla listę plików, które zostały zmienione. Kliknijcie dwukrotnie na każdym z kolei, by przejrzeć zmiany i zapisać scalone pliki.

Poprawka zdalnego dewelopera została zastosowana do kopii roboczej, więc trzeba ją zatwierdzić, aby wszyscy uzyskali dostęp do zmian z repozytorium.

TortoiseSVN homepage