Як тільки ви торкаєтесь теми паралельних змін, ви торкаєтесь області управління конфігурацією. З великою кількістю шаблонів, власних спільнот (http://www.cmcrossroads.com/) та інструментів не стільки для управління версіями (як svn / git), скільки для підтримки управління конфігурацією (шаблони), як прозорий регістр. (абсолютно різні райони).
У цьому випадку це все-таки проста ситуація, і ви виявите, що це працює з деякими обмеженнями, ручною роботою та деякими списками.
Я розглядаю сценарій, щоб зробити його більш описовим для ідеального рішення: декілька розробників, що працюють на одній і тій же кодовій базі, кілька тестових середовищ, кілька середовищ прийняття, кілька середовищ прийняття виробництва, можливо, в усіх куточках світу.
Якщо ви хочете зробити це трохи професійніше:
а) запишіть список усіх елементів конфігурації, з якими ви стикаєтесь, це може бути сам код WordPress, плагіни із зовнішніх, вмісту, метаданих та вирішіть, які з них ви хочете залучити під якесь "управління", які важливі.
б) опишіть робочі процеси, які можуть статися, наприклад, що відбувається з виправленням, що відбувається з чимось новим, що розвивається, в якому випадку ви змінюєте вміст на своїй стороні, як називається, і хто це робить, хто його власник наприклад, нова публікація або новий плагін.
в) для паралельної роботи спочатку опишіть, якими КІ ви хочете керувати, вирішіть, чи завжди потік від розвитку до виробництва чи дійсно потрібно зробити все це двома способами.
г) для кожного з типів ІС у пункті (а) написати резолюцію. Наприклад, для ВСЕ, що є текстом (або експортованим текстом, як файли PHP, але ТАКОЖ звичайним текстом у файлах XML) можливе об'єднання. Це насправді не проблема, але вам потрібен хороший інструмент злиття. Наприклад, з ClearCase ви отримаєте 3-х спосіб злиття наступних ситуацій: 1) тривіальне злиття: це зробить це автоматично 2) нетривіальне автоматичне: це зробить автоматично, але вам потрібно перевірити це 3) нетривіально неавтоматично: це це конфлікт, наприклад, на 1 рядку було внесено кілька змін. Нетривіальні дані - це мінімальна частина, про яку потрібно піклуватися вручну; хороший інструмент злиття приведе вас до цього, наприклад, в прозорому регістрі (який також робить об'єднання слів і де ви можете зв’язати інші комерційні чи некомерційні злиття для конкретного файлу типи). Furtermore, якщо ви визначили під (a) файли, які слід скопіювати, лише тоді їх поведінку було б не об'єднати, а просто скопіювати в один бік, перезаписавши іншу версію без злиття (наприклад, плагіни, які ви не модифікували). Багато з цих типів можливі з різною поведінкою. Але запишіть відносини між КІ,
Тоді для нетекстового злиття потрібно прийняти рішення, як поводитися з ними, наприклад зображення, які були змінені в 2 місцях. Ви можете вирішити, що виробництво завжди має перевагу (принаймні, це я вважаю), що робить його простим.
Отже ... для вирішення цієї проблеми вам потрібен інструмент управління версіями, який підтримує різні потоки. Кожен потік представляв би одну частину. (це може бути надзвичайно складним залежно від ваших потреб, але в цьому випадку я думаю, що це дуже просто).
Якщо тепер ви зможете мати ці потоки під вами встановленнями WordPress і синхронізувати їх також із вмістом бази даних тощо ..., тоді ви можете виконати злиття в інструменті CM / версія та потім експортувати їх назад в інше середовище.
Річ у тому, що вам потрібно спершу записати це. Це не технічний злом. Це шаблон за замовчуванням навколо Config Management, тому тут також нічого дивного, але вам потрібно записати його. Ви можете виявити, наприклад, що встановлений плагін вносить зміни в базу даних з деякими даними, які відрізняються в іншому середовищі, тому для цього вам потрібно мати додаткову процедуру.
Технічно майже завжди все можливо перевірити http://www.cmcrossroads.com/forums на предмет сценаріїв, які в десятки чи сотні разів складніші, хоча завжди використовуючи той самий підхід та використовуючи той самий набір шаблонів CM.
коротше: помістіть під нього рівень управління версіями, автоматизуйте злиття та вирішіть конфлікти, а потім імпортуйте у цільове середовище. Придумайте стратегію потоку, яка підходить тут, і запишіть її. Виконайте керування CM підлітковим бітом. Це було б професійним рішенням, інакше встановіть деякий хак-копію db, сценарії тощо ...