Najłatwiejszy sposób na utworzenie łatki do przesłania do WordPress Core?


13

Przesłałem kilka poprawek do rdzenia WordPress na Tracu (jeden z nich został użyty), ale za każdym razem, gdy myślę o zrobieniu tego, wzdrygam się, ponieważ moja konfiguracja do tego jest niezwykle nużąca.

Czy ktoś może szczegółowo opisać kroki potrzebne do przesłania łatki do rdzenia, a następnie najlepszy sposób na usprawnienie procesu, aby nie był tak żmudny? Obecnie pracuję w systemie Mac OS X i PhpStorm, ale myślę, że skrypt powłoki może być najłatwiejszy? A może skrypt PHP, który działa na wszystkie rote?

Jednym z problemów jest to, że nie do końca rozumiem, od czego muszę zacząć. Czy zaczynam od pnia? Czy muszę pobierać nową kopię i dodawać / edytować tę kopię za pomocą mojego kodu za każdym razem, gdy chcę utworzyć łatkę?

Ponownie, podczas gdy ja to zrobiłem, praca z SVN i łatanie jest naprawdę poza moim obecnym zestawem umiejętności i chcę to zmienić. Mam nadzieję, że eksperci od łatania WordPressa mogą mi pomóc. Z góry dziękuję.

AKTUALIZACJA:

Po odpowiedzi @ hakre uważam, że powinienem dodać więcej do pytania:

  • Czy mogę tworzyć łatki ze starszej wersji, czy muszę używać pnia?
  • Jeśli pracuję nad projektem przy użyciu wydanej wersji (3.0.1), czy mogę go zmodyfikować i utworzyć łatkę na rdzeń, czy też muszę pobrać i skonfigurować nieskazitelną i nową kopię tułowia oraz dokonać tam nowych modyfikacji?
  • Czy mogę to zrobić za pomocą skryptów powłoki, aby móc zakodować login w skrypcie i uruchomić skrypt, aby odtworzyć wszystko, czego potrzebuję i / lub utworzyć łatkę?
  • A jakie są pułapki?

Wszystkie te pytania wydają się być przejmowane przez tych, którzy wiedzą, jak działa SVN WordPressa i jako takie są zawsze pomijane w każdej dyskusji.

Odpowiedzi:


8

Najłatwiejszy sposób utworzenia łatki opisano tutaj:

http://wordpress.org/download/svn/

Czy mogę tworzyć łatki ze starszej wersji, czy muszę używać pnia?

Powinieneś utworzyć łatkę dla tej samej wersji, przeciwko której chcesz ją zastosować.

Innymi słowy, nie spodziewaj się, że łatka utworzona przeciwko WP 3.0.1 będzie czysto stosowana na WP 3.1-alpha.

Jeśli pracuję nad projektem przy użyciu wydanej wersji (3.0.1), czy mogę go zmodyfikować i utworzyć łatkę na rdzeń, czy też muszę pobrać i skonfigurować nieskazitelną i nową kopię tułowia oraz dokonać tam nowych modyfikacji?

Nie musisz konfigurować nowej instalacji dla każdej nowej poprawki. Możesz po prostu użyć svn revert, aby wrócić do nieskazitelnej kopii.

Ponadto baza danych nie musi być za każdym razem czysta. W rzeczywistości lepiej jest, jeśli masz jakieś modyfikacje, aby symulować środowisko na żywo.


1
O rany, po tym, jak mamy kopię roboczą svn diff > my-patch.patch, łatwo jest utworzyć łatkę :, ja gusta!
brasofilo

5

Eclipse PDT + Subclipse + X

Korzystam z Eclipse, który ma integrację SVN . Myślę, że PHP Strom też to robi. Wchodzę w jeden z moich projektów trunk, które są w zasadzie kasą z repozytorium SVP WordPress.

Następnie edytuję pliki, które muszę edytować. Eclipse pokazuje, które są zmodyfikowane, klikam katalog prawym przyciskiem myszy, wybieram Team->Create Patchi otrzymuję oferowane wszystkie zmienione pliki, które mogę wybrać dla diff. Następnie mogę wybrać pomiędzy kopiowaniem do schowka lub zapisywaniem na dysku. Wszystkie łatki, które tworzę z numerem biletu, zapisuję w katalogu, który mam na dysku twardym.

Następnie wchodzę do przeglądarki i przesyłam łatkę.

Mógłbym to również zrobić dzięki integracji MyLyn Trac , która jest jeszcze bardziej wygodna, ale potrzebujesz XML-RPC bezpośrednio w trac, więc potrzebujesz kontaktu z administratorem trac. Działa całkiem dobrze, ale nie mam go skonfigurowanego w każdym projekcie i używam go głównie, gdy robię podsumowania biletów.

Więc naprawdę, sprawdź Eclipse, jeśli chcesz. Jest ogromny i wolny, więc potrzebujesz albo dużego komputera. Na małych zrobiłem dobre doświadczenia z Fedorą Linux. Eclipse działa na nim dobrze. Wiem, że jesteś fanem PHP Storm, ale cóż, naprawdę podoba mi się mój Eclipse i ma wiele rozszerzeń, które naprawdę się bawią. Nawet dla PHP :). Ale PHP Storm powinien w zasadzie także robić kasę / łatać rzeczy.

WordPress Eclipse 1x1

Ach i mam narzędzie w moim systemie operacyjnym, które zapisuje wszystkie używane katalogi. Mogę więc zapisać łatki i szybko przesyłać pliki, ponieważ zawsze pochodzą one z tego samego katalogu, który miałem wtedy na ostatniej liście.

Przykład integracji: Sniffer kodu PHP, Eclipse i WordPress


Dzięki za odpowiedź. Próbowałem Eclipse i nienawidziłem tego. Zbyt mało odpowiada i po prostu nie podobał mi się interfejs. To dobra odpowiedź dla innych, dla których Eclipse jest opcją, ale twoja odpowiedź nie zaspokaja moich potrzeb. Oddam to i oddam głos, ale wolałbym rozwiązanie niepowiązane z IDE, również takie, które lepiej wyjaśnia ten proces.
MikeSchinkel

Chciałem też powiedzieć, że PhpStorm ma pełną integrację SVN (i Git), ale jej integracja naprawdę wymaga od użytkownika pełnego zrozumienia, jaki efekt będzie miało każde menu, ponieważ oferuje niewiele wskazówek, jak z nimi pracować (jest mnóstwo w plikach pomocy, ale ponieważ nie są one zależne od kontekstu, a ponieważ SVN + Git jest ogromnym dodatkiem do PhpStorm, łatwo się całkowicie w to zagubić.) Dlatego chcę to zrozumieć w istocie i nie muszę przełączać się na IDE Nie lubię tego robić.
MikeSchinkel

@MikeSchinkel - Jeśli SVN jest dla ciebie zbyt skomplikowany (niezależnie od tego, który smak SVN + Editor), nie możesz tworzyć łatek dla projektu wordpress. Zasadniczo, jeśli nie podoba ci się interfejs użytkownika do SVN, zapoznaj się z wierszem poleceń. Ale i tak musisz się uczyć. Możesz używać SVN z dowolnym edytorem, który ci się podoba. Mam jedno kopiowanie linii głównej SVN i skonfigurowane na serwerze WWW, aby tworzyć łatki i je testować. Po utworzeniu jednej poprawki usuwam lokalne zmiany (przywracam) z mojej lokalnej kopii, a następnie mogę przejść do innych poprawek. To zawsze działa. Co jeszcze można powiedzieć?
hakre

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.