En cuanto toca el tema de hacer cambios en paralelo, toca el área de administración de la configuración. Con muchos patrones, comunidades propias (http://www.cmcrossroads.com/) y herramientas no tanto para la administración de versiones (como svn / git) sino para el soporte de la administración de configuraciones (patrones) como clearcase. (áreas totalmente diferentes).
En este caso, todavía es una situación simple y encontrará que funciona con algunas limitaciones y algunos trabajos manuales y algunas listas.
El escenario en el que estoy pensando es que sea más descriptivo de la solución ideal: múltiples desarrolladores que trabajan en la misma base de código, múltiples entornos de prueba, múltiples entornos de aceptación, múltiples entornos de aceptación de producción posiblemente en todos los rincones del mundo.
Si quieres hacer esto un poco más profesional:
a) escriba una lista de todos los elementos de configuración que encuentre, este podría ser el propio código de WordPress, complementos externos, contenido, metadatos y decidir cuáles de estos desea incluir en algún tipo de "administración", que los que importan.
b) describe los flujos de trabajo que pueden ocurrir, por ejemplo, qué sucede con una solución, qué sucede con algo nuevo que se está desarrollando, en qué caso cambia el contenido de su lado, cómo se llama y quién lo hace, quién es el propietario, por ejemplo. una nueva publicación o un nuevo complemento.
c) para el trabajo paralelo, describa primero los CI que desea administrar, decida si el flujo es siempre del desarrollo a la producción o si realmente es necesario hacerlo de dos maneras.
d) para cada uno de los tipos de CI en (a) escriba una resolución. P.ej. para TODO lo que es texto (o texto exportado como archivos php pero TAMBIÉN texto sin formato en archivos XML) es posible la combinación. Esto realmente no es un problema, pero necesitas una buena herramienta de combinación.
p.ej. Con ClearCase obtendrías una combinación de 3 maneras en las siguientes situaciones:
1) Fusiones triviales: las hará automáticamente.
2) automático no trivial: lo hará automáticamente PERO usted necesita verificarlo
3) no trivial no automático: esto es un conflicto, por ejemplo. En 1 línea se han realizado varios cambios.
Los elementos no triviales son la parte mínima que debe cuidar manualmente, una buena herramienta de fusión lo guiará en esto, por ejemplo. el que está en clearcase (que también hace fusión de palabras y donde puede vincularse en otras fusiones comerciales o no comerciales para tipos de archivos específicos).
Además, si ha identificado en (a) archivos que deberían copiarse solo, su comportamiento sería no fusionarse, sino simplemente copiarse de una manera sobrescribiendo la otra versión sin una combinación (por ejemplo, complementos que no haya modificado). Muchos de estos tipos son posibles con diferentes comportamientos. Pero anote las relaciones entre los CI's,
Luego, para las combinaciones no basadas en texto, debes tomar una decisión sobre cómo manejarlas, por ejemplo. Imágenes que han sido cambiadas en 2 lugares. Aquí podría decidir que la producción siempre tiene preferencia (al menos eso es lo que pensaría), lo que lo hace simple.
Entonces ... para resolver este problema, necesita una herramienta de administración de versiones que admita diferentes flujos. Cada flujo representaría una parte. (Esto puede ser inmensamente complejo dependiendo de sus necesidades, pero en este caso creo que es muy simple).
Si ahora puede administrar tener estas transmisiones bajo sus instalaciones de WordPress y sincronizarlas también con el contenido de la base de datos, etc ..., entonces puede realizar las fusiones en la herramienta CM / versioning y luego exportarla de nuevo en el otro entorno.
La cosa es ... primero debes escribir esto. Esto no es un truco técnico. Es un patrón predeterminado alrededor de Config Management, por lo que aquí tampoco hay nada extraño, pero debe escribirlo. Usted podría encontrar por ejemplo que un complemento instalado realiza cambios en la base de datos con algunos datos que son diferentes en otro entorno, por lo que necesita tener un procedimiento adicional para solucionarlo.
Técnicamente, casi siempre todo es posible, compruebe enlace para ver los escenarios que son docenas o cientos de veces más complejos, aunque siempre con el mismo enfoque. y usando el mismo conjunto de patrones de CM.
en resumen: ponga una capa de administración de versión debajo, automatice las fusiones y maneje los conflictos, luego importe en el entorno de destino. Piense en una estrategia de transmisión que encaje aquí y escríbala. Realizar una pequeña gestión de CM. Esa sería la solución profesional. De lo contrario, instale un hack db copy, scripts, etc ...