Tan pronto como toque el tema de hacer cambios en paralelo, toque el área de administración de la configuración. Con muchos patrones, comunidades propias (http://www.cmcrossroads.com/) y herramientas no tanto para la gestión de versiones (como svn / git) sino para el soporte de la gestión de configuración (patrones) como clearcase. (zonas totalmente diferentes).
En este caso, sigue siendo 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 para hacerlo 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 código de WordPress en sí mismo, complementos externos, contenido, metadatos y decida cuáles de estos desea incluir bajo algún tipo de "administración", cuáles importan.
b) describa los flujos de trabajo que pueden suceder, 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 del mismo por ejemplo, una nueva publicación o un nuevo complemento.
c) para el trabajo en paralelo, primero describa qué CI desea administrar, decida si el flujo es siempre del desarrollo a la producción o si realmente es necesario hacerlo todo de dos maneras.
d) para cada uno de los tipos de CI bajo (a) escriba una resolución. Por ejemplo, para TODO eso es texto (o texto exportado como archivos php pero TAMBIÉN texto plano en archivos XML) es posible la fusión. Esto realmente no es un problema, pero necesita una buena herramienta de combinación. Por ejemplo, con ClearCase obtendría una combinación de 3 formas en las siguientes situaciones: 1) combinaciones triviales: las hará automáticamente 2) no trivial automático: las hará automáticamente PERO debe 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 claro (que también hace la combinación de palabras y donde puede vincular otras fusiones comerciales o no comerciales para un archivo específico tipos). Además, si ha identificado en (a) archivos que deben copiarse, solo su comportamiento sería no fusionarse, sino simplemente copiarse de una manera sobrescribiendo la otra versión sin una fusión (por ejemplo, complementos que no ha modificado). Muchos de estos tipos son posibles con diferentes comportamientos. Pero escriba las relaciones entre los CI,
Luego, para las fusiones no basadas en texto, debe tomar una decisión sobre cómo manejarlas, por ejemplo, imágenes que se han cambiado en 2 lugares. Aquí podría decidir que la producción siempre tiene preferencia (al menos eso es lo que yo 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 secuencia 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 lograr 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 exportarlas nuevamente al otro entorno.
La cosa es que ... debes escribir esto primero. Este no es un truco técnico. Es un patrón predeterminado alrededor de la administración de configuración, por lo que no hay nada extraño aquí también, pero debe escribirlo. Puede 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 debe tener un procedimiento adicional al respecto.
Técnicamente casi siempre todo es posible, consulte http://www.cmcrossroads.com/forums para ver escenarios que son docenas o cientos de veces más complejos, aunque siempre utilizando el mismo enfoque y el mismo conjunto de patrones CM.
en resumen: coloque una capa de administración de versiones 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 anótela. Realice una pequeña gestión CM CM. Esa sería la solución profesional, de lo contrario, instale algún hack de copia de db, scripts, etc.