¿La forma más fácil de crear un parche para enviarlo a WordPress Core?


13

He enviado algunos parches para el núcleo de WordPress en Trac (uno de los cuales se ha utilizado), pero cada vez que pienso en hacerlo me estremezco porque mi configuración para hacerlo es increíblemente tediosa.

¿Alguien puede detallar los pasos necesarios para enviar un parche para core, y luego la mejor manera de simplificar el proceso para que no sea tan tedioso? Actualmente trabajo con Mac OS X y PhpStorm, pero ¿creo que un script de shell podría ser más fácil? ¿O tal vez un script PHP que hace todo el trabajo de memoria?

Uno de los problemas es que no entiendo completamente con qué debo comenzar. ¿Comienzo con tronco? ¿Tengo que descargar una nueva copia y agregar / editar esa copia con mi código cada vez que quiero crear un parche?

Nuevamente, aunque lo hice trabajando con SVN y el parcheo está realmente fuera de mi conjunto de habilidades actual y quiero cambiar eso. Esperando que los expertos en parches de WordPress puedan venir a mi rescate. Gracias por adelantado.

ACTUALIZAR:

Después de la respuesta de @ hakre, creo que debería agregar más a la pregunta:

  • ¿Puedo crear parches desde una versión anterior o debo usar troncal?
  • Si estoy trabajando en un proyecto con la versión lanzada (3.0.1), ¿puedo modificarlo y crear un parche para el núcleo o tengo que descargar y configurar una copia nueva y prístina del tronco y hacer mis modificaciones allí?
  • ¿Puedo hacerlo con los scripts de shell para poder codificar el inicio de sesión en el script y simplemente ejecutar el script para recrear todo lo que necesito y / o crear el parche?
  • ¿Y cuáles son las trampas?

Todas estas preguntas parecen ser asumidas por aquellos que saben cómo funciona el SVN de WordPress y, como tal, siempre se pasan por alto en cualquier discusión.

Respuestas:


8

La forma más fácil de crear un parche se describe aquí:

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

¿Puedo crear parches desde una versión anterior o debo usar troncal?

Debe crear el parche con la misma versión a la que desea aplicarlo.

En otras palabras, no espere que un parche creado contra WP 3.0.1 se aplique limpiamente en WP 3.1-alpha.

Si estoy trabajando en un proyecto con la versión lanzada (3.0.1), ¿puedo modificarlo y crear un parche para el núcleo o tengo que descargar y configurar una copia nueva y prístina del tronco y hacer mis modificaciones allí?

No tiene que configurar una nueva instalación para cada parche nuevo. Puede usar svn revert para volver a una copia prístina.

Además, la base de datos no tiene que estar limpia cada vez. En realidad, es mejor si tiene algunas modificaciones, simular un entorno en vivo.


1
Gee, es muy fácil crear un parche después de tener nuestra copia de trabajo: ¡ svn diff > my-patch.patchme gusta!
brasofilo

5

Eclipse PDT + Subclipse + X

Estoy usando Eclipse que tiene integración SVN . Creo que PHP Strom también lo hace. Entro en uno de mis proyectos troncales que son básicamente un pago desde el repositorio svn de WordPress.

Luego edito los archivos que necesito editar. Eclipse muestra cuáles se modifican, hago clic derecho en un directorio, selecciono Team->Create Patchy me ofrecen todos los archivos modificados que puedo seleccionar para la diferencia. Entonces puedo elegir entre copiar al portapapeles o guardar en el disco. Guardo todos los parches que creo con el número de ticket en un directorio que tengo en mi disco duro.

Luego entro en el navegador y subo el parche.

También podría hacer esto con una integración MyLyn Trac , que es aún más cómoda, pero necesita XML-RPC directamente en trac, por lo que necesita un administrador de trac para contactar. Funciona bastante bien, pero no lo tengo configurado en todos los proyectos y lo uso principalmente cuando hago recortes de tickets.

Así que realmente, revisa Eclipse si quieres. Es enorme y lento, por lo que necesita una computadora grande. En los pequeños hice buenas experiencias con Fedora Linux. Eclipse funciona bien en eso. Sé que eres un fanático de PHP Storm pero, bueno, realmente me gusta mi Eclipse y viene con muchas extensiones que realmente rockea. Incluso para PHP :). Pero PHP Storm básicamente también debería hacer el pago / parche.

WordPress Eclipse 1x1

Ah, y tengo una herramienta en mi sistema operativo que guarda todos los directorios que he usado. Entonces puedo guardar los parches y subir los archivos rápidamente porque siempre son del mismo directorio que tengo en la lista reciente.

Ejemplo de integración: PHP Code Sniffer, Eclipse y WordPress


Gracias por responder. Probé Eclipse y lo odié. Demasiado insensible y simplemente no me gustó la interfaz. Por lo tanto, es una buena respuesta para otros para quienes Eclipse es una opción, pero su respuesta no responde a mis necesidades. Lo daré y votaré, pero preferiría una solución que no esté vinculada al IDE, también una que explique mejor el proceso.
MikeSchinkel

También quise decir que PhpStorm tiene una integración completa de SVN (y Git), pero su integración realmente requiere que un usuario comprenda completamente qué efecto tendrá cada menú porque ofrece poca o ninguna orientación sobre cómo trabajar con ellos (hay mucho en los archivos de ayuda, pero como no son sensibles al contexto y dado que SVN + Git es una gran adición a PhpStorm, es fácil perderse por completo en eso.) Es por eso que quiero entenderlo en el núcleo y no tener que cambiar a IDEs No me gusta hacerlo.
MikeSchinkel

@MikeSchinkel : si SVN es demasiado complicado para usted (independientemente del sabor de SVN + Editor), no puede crear parches para el proyecto de WordPress. Básicamente, si no te gusta la interfaz de tu interfaz de usuario para SVN, aprende la línea de comandos. Pero necesitas aprender de todos modos. Puede usar SVN con cualquier editor que desee por cierto. Tengo un copyrunning de troncal SVN y lo configuré en un servidor web para crear parches y probarlos. Después de hacer un parche, elimino los cambios locales (revertir) de mi copia local y luego puedo continuar con otros parches. Siempre es trabajo ¿Qué más decir?
Hakre

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.