Cómo: enviar un repositorio de GitHub a los servidores de plugins de WordPress

21

Desarrollo mi complemento en github, pero cuando se trata de la implementación, tengo que copiar de alguna manera mis cambios en Wordpress SVN . Actualmente hago esto manualmente y copio sobre cada archivo en cada directorio individualmente, pero esto lleva mucho tiempo y es propenso a errores.

He visto e intentado algunos scripts, pero creo que debo ejecutarlos incorrectamente, ya que producen errores o no copian los archivos correctamente.

Entonces mi pregunta es si alguien ha logrado esto automáticamente y, si es así, ¿cómo lo hizo?

¡Gracias!

studioromeo
fuente
Si bien creo que esta es una pregunta interesante y útil, también queda fuera de alcance ya que se trata de la interacción de Git y Subversion y no hay nada específico sobre WordPress. Necesito pensar cuál sería la mejor acción aquí ...
Rarst
He comenzado una pregunta sobre meta para discutir este caso.
Rarst el
@Rarst gracias por eso, perdón por extraviar la pregunta
studioromeo

Respuestas:

1

vea este tutorial de un compañero de trabajo de mi equipo: http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

pero no usa la solución, es más fácil trabajar por separado :(

bueltge
fuente
Gracias @bueltge. Entonces, ¿estoy en lo cierto al pensar que ha vuelto al método manual?
studioromeo
44
Por amor a todo lo que es sagrado, no siga las instrucciones en ese sitio. Si de repente haces cientos de compromisos con nuestro SVN, personalmente haré que el objetivo de mi vida sea encontrarte y golpearte con un palo. O tal vez solo te excluya de WordPress.org. ;) Por favor, solo confirme la versión final, no todos y cada uno de sus cambios que se comprometió a git. Valoramos su historia, pero solo una historia significativa. El problema con git es que las personas cometen un montón de basura inútil, y no necesitamos saber todo eso, en general.
Otto
@Otto Lol! No, simplemente quiero poder implementar mis cambios en el repositorio SVN. Actualmente hago esto manualmente sobrescribiendo archivos en mi repositorio svn desprotegido, pero eso es tedioso y propenso a errores. ¿Tienes alguna sugerencia?
studioromeo
3
Hacer una nueva versión interactiva de tus cambios de Git te permitirá combinarlos en una sola confirmación SVN. Más información sobre cómo hacer esto está aquí: stackoverflow.com/questions/158514/…
Otto
1
@Otto " No lo sé, sinceramente, no uso Git. Me resulta molesto " . Se puede responder con otra cita (directamente de usted) " Personalmente, el objetivo de mi vida será encontrarte y vencerte con un palo ":)
kaiser
1

Después de leer estas respuestas, introduje uno de mis complementos en GitHub y escribí un script release.sh . Este script obtiene un pago parcial de mi complemento desde plugins.svn.wordpress.org usando --depth immediatesy actualiza los archivos en trunk/y assets/. Esto debería simplificar un impulso periódico a svn, utilizando el repositorio de wordpress.org para etiquetar lanzamientos en lugar de mantener el historial de desarrollo:

./release.sh
svn cp trunk tags/0.6
svn ci "Sending 0.6 from https://github.com/foo/bar to wordpress.org"

Una versión más genérica podría funcionar con una variedad más amplia de complementos, manejar archivos eliminados y actualizar etiquetas svn automáticamente basadas en etiquetas git.

Annika Backstrom
fuente
1

Consulte Cómo publicar un complemento de WordPress - Git de @EAMann para obtener una descripción detallada.

fuxia
fuente
Si va a hacer este tipo de cosas, haga una nueva versión interactiva y luego cambie todas las confirmaciones que se van a aplastar, para que no realice docenas de pequeñas confirmaciones en los servidores SVN. Más información sobre cómo hacer esto está aquí: stackoverflow.com/questions/158514/…
Otto
55
@Otto Si bien entiendo totalmente su deseo de reducir la carga del servidor :) Realmente, realmente me encantan las confirmaciones atómicas si tengo que depurar el código de otras personas. Hm ... un enlace automático a un repositorio público de Git con un historial de confirmación completo podría ser una mejora útil para el directorio de complementos.
fuxia
3
Tengo que estar de acuerdo con @Otto sobre esto. El SVN de WordPress.org realmente debería ser el repositorio de lanzamiento, no el repositorio de desarrollo.
MikeSchinkel
1

La pregunta era antigua pero ahora la solución ahora está disponible con acciones de GitHub. Recientemente, GitHub agregó Github Actions al flujo de trabajo automatizado para el repositorio de GitHub.

Y la conocida compañía 10up creó la "Implementación de plugins de WordPress de acción".

Es muy fácil de configurar. Y según @otto dice que no necesitamos empujar cada cambio a svn, así que podemos configurar la automatización mientras creamos una nueva etiqueta en github.

Entonces, nuestro complemento github automáticamente inserta el código en el repositorio de WordPress cuando creamos una nueva etiqueta de lanzamiento.

Enlaces útiles:

maheshwaghmare
fuente
0

No lo hago automáticamente, pero es bastante simple:

Haga que el camión SVN y el maestro Git se retiren en el mismo directorio. Use Git para casi todo, como lo haría con cualquier proyecto solo de Git.

Establezca el valor stable tagde ser trunk, y luego, cuando esté listo para hacer un lanzamiento, etiquételo en Git y luego presione inmediatamente al tronco. No se preocupe por pasar a SVN /tags, ya que su historial de versiones está seguro en Git (y Github).

Eso es todo.

Para limpiarlo, agrego .svna .gitignore, y .git(y tests/,phpunit.xml , etc.) para ser ignorado por SVN.

Un script release.sh realmente no sería más que lo siguiente (una vez que se haya actualizado el número de versión en el código, y todo se haya comprometido con Git):

git tag $1
svn ci -m"Release: $1"
Sam Wilson
fuente