Ta strona przedstawia przepływ pracy do pobierania i stosowania poprawek w lokalnym obszarze roboczym, w oparciu o lokalne „gałęzie tematu”.
Uwaga: Można również użyć narzędzia drupalorg-cli do utworzenia gałęzi problemu i zastosowania poprawki.
Przygotuj lokalne repozytorium
- Postępuj zgodnie z krokami Klonowanie repozytorium Drupal git, aby utworzyć lokalną kopię repozytorium lub zaktualizuj istniejącą lokalną kopię do najnowszej wersji.
- Utwórz lokalną „gałąź tematyczną” dla sprawy, nad którą pracujesz.
git checkout -b - # e.g. 123456-some-bug
Pobierz i zastosuj plik poprawki
Pobierz plik poprawki z wydania i zastosuj zmiany kodu w poprawce w swoim katalogu roboczym (poniższe polecenia zakładają, że jesteś w oknie terminala w katalogu głównym projektu). Istnieje kilka alternatyw:
Istnieje również wiele argumentów wiersza poleceń dla polecenia git apply
. Jednym z przydatnych jest -v
, który daje bardziej dosłowne dane wyjściowe:git apply -v patchname.patch
Zobacz dokumentację git apply, aby uzyskać więcej informacji.
Jeśli łatka nie zostanie zastosowana i być może otrzymujesz komunikat „Pominięto łatkę ….”, spróbuj użyć polecenia patch
(zobacz „Przypisy” poniżej, aby dowiedzieć się więcej) lub cofnij poprawkę:
patch -p1 < .patch
Odwróć poprawkę, dodając parametr -R
:
patch -R -p1 < .patch
Commit the patch
Jeśli planujesz pracować nad ulepszeniem łatki, następnym krokiem jest commit oryginalnej łatki do gałęzi lokalnego repozytorium:
git add FILESAFFECTEDgit commit -m "Patch COMMENTNUMBER by OTHERPERSON”
Kiedy skończysz: Czyszczenie kodu
Po zakończeniu testowania poprawki, będziesz chciał przywrócić swoje repozytorium do „czystego” stanu:
- Użyj tego polecenia, aby przywrócić poprawkę:
git apply -R path/file.patch
- Użyj tej komendy, aby usunąć utworzoną gałąź fabularną:
git branch -D
Composer
Jeśli utrzymujesz kod witryny Drupala za pomocą Composera, a jeden z projektów musi mieć łatkę:
* Aby zastosować łatki za pomocą composera musisz zainstalować projekt composer-patches:
composer require cweagans/composer-patches:~1.0 --update-with-dependencies
Przypisy
- Możesz również zastosować łatki za pomocą
git am
git am
jest również przydatny, jeśli łatki zostały utworzone przezgit format-patch
. - Komenda
patch
jest przydatna dla łatek, które nie są stosowane, ponieważ zastosuje większość łatki, a następnie możesz być w stanie spojrzeć na plik.rej
, który tworzy dla odrzuconych „kawałków” łatki i naprawić je ręcznie. Jeśli jest to zbyt skomplikowane, spróbuj ponownie rozpakować łatkę. - Ponieważ same pliki łatek nie powinny być nigdy dodawane do projektu, możesz powiedzieć Gitowi, aby je ignorował, dodając linię
*.patch
do pliku.git/info/exclude
w projekcie, lub do globalnego pliku ~/.gitignore. Alternatywnie, możesz pobrać je do innej lokalizacji. - Jeśli masz błędy, gdy próbujesz zastosować poprawkę, sprawdź co następuje:
- Poprawka może mieć niewłaściwe kodowanie końca linii. Naszym standardem jest używanie kodowania końca linii w stylu uniksowym (zobacz Wytyczne dla łatek).
- Łatka może nie pasować do najnowszej wersji rozwojowej. Zobacz Rerolling patches, aby dowiedzieć się, jak scalić późniejsze zmiany.
- Jeśli automatyczne testowanie również oznaczyło łatę jako nie stosującą się w czasie, gdy została stworzona, deweloper, który stworzył łatę mógł popełnić błąd (taki jak nie używanie Git lub nie używanie najnowszej wersji rozwojowej).
.