Как только вы коснетесь темы внесения изменений параллельно, вы коснетесь области управления конфигурацией. С большим количеством шаблонов, собственными сообществами (http://www.cmcrossroads.com/) и инструментами не столько для управления версиями (как svn / git), но для поддержки управления конфигурациями (шаблонами), такими как clearcase. (совершенно разные области).
В этом случае это все еще простая ситуация, и вы обнаружите, что она работает с некоторыми ограничениями, ручной работой и некоторыми списками.
Сценарий, о котором я думаю, чтобы сделать его более подходящим для описания идеального решения: несколько разработчиков, работающих над одной и той же кодовой базой, несколько сред тестирования, несколько сред принятия, множество производственных сред принятия, возможно, во всех уголках мира.
Если вы хотите сделать это немного более профессионально:
а) запишите список всех элементов конфигурации, с которыми вы сталкиваетесь, это может быть сам код WordPress, плагины из внешних источников, контент, метаданные и решить, какие из них вы хотите включить в некое «управление», какие из них имеют значение.
б) опишите рабочие процессы, которые могут произойти, например, что происходит с исправлением, что происходит с чем-то новым, являющимся разработкой, в каком случае вы меняете контент на своей стороне, как это называется, и кто это делает, кто является его владельцем например, новый пост или новый плагин.
c) для параллельной работы сначала опишите, какими CI вы хотите управлять, решите, всегда ли идет поток от разработки к производству или действительно нужно сделать все это двумя способами.
d) для каждого типа CI в разделе (a) напишите разрешение. Например, для ВСЕХ, которые представляют собой текст (или экспортированный текст, такой как файлы php, но ТАКЖЕ обычный текст в файлах XML), возможно объединение. Это действительно не проблема, но вам нужен хороший инструмент слияния. Например, с ClearCase вы получите 3 способа слияния в следующих ситуациях: 1) тривиальные слияния: они будут делать это автоматически 2) нетривиальные автоматические: это будут выполняться автоматически, но вы должны это проверить 3) нетривиальные не автоматические: это конфликт, например, в одной строке было сделано несколько изменений. Нетривиальные - это минимальная часть, о которой вам нужно позаботиться вручную, хороший инструмент для слияния поможет вам в этом, например, в прозрачном (который также выполняет слияние слов и где вы можете связать другие коммерческие или некоммерческие слияния для конкретного файла). типов). Более того, если вы определили в разделе (а) файлы, которые должны быть скопированы только тогда, их поведение будет состоять в том, чтобы не объединять, а просто копировать одним способом, перезаписывая другую версию без объединения (например, плагины, которые вы не модифицировали). Многие из этих типов возможны с различным поведением. Но запишите отношения между КИ,
Затем для нетекстовых слияний необходимо принять решение о том, как их обрабатывать, например, изображения, которые были изменены в 2 местах. Здесь вы можете решить, что производство всегда имеет предпочтения (по крайней мере, так я думаю), что делает его простым.
Итак ... чтобы решить эту проблему, вам нужен инструмент управления версиями, который поддерживает разные потоки. Каждый поток представляет одну часть. (это может быть очень сложно в зависимости от ваших потребностей, но в этом случае я думаю, что это очень просто).
Если вы теперь можете управлять этими потоками под вашими установками WordPress и синхронизировать их также с содержимым базы данных и т. Д., То вы можете выполнить слияния в инструменте CM / управления версиями и затем экспортировать его обратно в другую среду.
Дело в том ... вы должны сначала записать это. Это не технический взлом. Это шаблон по умолчанию для управления конфигурацией, поэтому здесь нет ничего странного, но вам нужно записать его. Например, вы можете обнаружить, что установленный плагин вносит изменения в базу данных с некоторыми данными, которые отличаются в другой среде, поэтому вам нужно выполнить дополнительную процедуру для этого.
Технически почти всегда все возможно, проверьте http://www.cmcrossroads.com/forums для сценариев, которые в десятки или сотни раз более сложны, хотя всегда используют один и тот же подход и используют один и тот же набор шаблонов CM.
короче говоря: поместите под него слой управления версиями, автоматизируйте слияния и обработайте конфликты, затем импортируйте в целевую среду. Придумайте подходящую потоковую стратегию и запишите ее. Выполните крошечное управление CM. Это было бы профессиональным решением, в противном случае установите некоторые хабы для копирования БД, скрипты и т.д