Sobald Sie das Thema Änderungen parallel berühren, berühren Sie den Bereich Konfigurationsmanagement. Mit vielen Mustern, eigenen Communities (http://www.cmcrossroads.com/) und Tools nicht so sehr für das Versionsmanagement (wie svn / git), sondern für die Unterstützung des Konfigurationsmanagements (Patterns) wie Clearcase. (ganz andere Bereiche).
In diesem Fall ist es immer noch eine einfache Situation und Sie werden feststellen, dass es mit einigen Einschränkungen und einigen manuellen Arbeiten und einigen Listen funktioniert.
Das Szenario, über das ich nachdenke, um die ideale Lösung besser beschreiben zu können: mehrere Entwickler, die an derselben Codebasis arbeiten, mehrere Testumgebungen, mehrere Akzeptanzumgebungen, mehrere Produktionsakzeptanzumgebungen, möglicherweise in allen Teilen der Welt.
Wenn Sie dies ein bisschen professioneller machen möchten:
a) Notieren Sie sich eine Liste aller Konfigurationselemente, auf die Sie stoßen. Dies kann der WordPress-Code selbst sein, Plugins von externen Stellen, Inhalt, Metadaten und entscheiden, welche davon Sie einer Art "Verwaltung" unterziehen möchten, welche davon von Bedeutung sind.
b) Beschreiben Sie die Workflows, die passieren können, z. B. was mit einem Fix passiert, was mit etwas Neuem passiert, in welchem Fall ändern Sie Inhalte auf Ihrer Seite, wie heißt das und wer tut es, wer ist der Eigentümer davon zB ein neuer Beitrag oder ein neues Plugin.
c) Beschreiben Sie beim parallelen Arbeiten zunächst, welche CIs Sie verwalten möchten, und entscheiden Sie, ob der Datenfluss immer von der Entwicklung bis zur Produktion erfolgt oder ob er wirklich auf zwei Arten durchgeführt werden muss.
d) Schreiben Sie für jeden der CI-Typen unter (a) eine Auflösung. ZB für ALLES, was Text ist (oder exportierten Text wie PHP-Dateien, aber AUCH reinen Text in XML-Dateien), ist das Zusammenführen möglich. Dies ist wirklich kein Problem, aber Sie benötigen ein gutes Merge-Tool. Beispiel: Mit ClearCase würden Sie auf dreifache Weise die folgenden Situationen zusammenführen: 1) Trivial Merges: Diese werden automatisch durchgeführt. 2) Nicht-Trivial-Automatic: Diese werden automatisch durchgeführt. ABER Sie müssen dies überprüfen. 3) Nicht-Trivial-Non-Automatic: Dies ist ein Konflikt zB in 1 Zeile wurden mehrere Änderungen vorgenommen. Die Nicht-Trivials sind der minimale Teil, den Sie manuell bearbeiten müssen. Ein gutes Tool zum Zusammenführen führt Sie beispielsweise in Klartext (das auch das Zusammenführen von Wörtern ausführt und in dem Sie andere kommerzielle oder nicht-kommerzielle Zusammenführungen für bestimmte Dateien verknüpfen können) Typen). Wenn Sie unter (a) Dateien identifiziert haben, die nur kopiert werden sollen, besteht ihr Verhalten darin, dass sie nicht zusammengeführt werden, sondern nur so kopiert werden, dass die andere Version ohne Zusammenführung überschrieben wird (z. B. Plugins, die Sie nicht geändert haben). Viele dieser Typen sind mit unterschiedlichem Verhalten möglich. Aber schreiben Sie die Beziehungen zwischen CIs auf,
Dann müssen Sie für die nicht-textbasierten Zusammenführungen eine Entscheidung treffen, wie sie behandelt werden sollen, z. B. Bilder, die an zwei Stellen geändert wurden. Sie könnten hier entscheiden, dass die Produktion immer Vorrang hat (zumindest denke ich das), was es einfach macht.
Um dieses Problem zu lösen, benötigen Sie ein Versionsverwaltungstool, das verschiedene Streams unterstützt. Jeder Stream würde einen Teil darstellen. (Dies kann sehr komplex sein, je nach Ihren Bedürfnissen, aber in diesem Fall denke ich, dass es sehr einfach ist).
Wenn Sie es jetzt schaffen, diese Streams unter Ihren WordPress-Installationen zu haben und sie auch mit dem Inhalt der Datenbank usw. zu synchronisieren, können Sie die Zusammenführungen im CM / Versionierungs-Tool ausführen und dann wieder in die andere Umgebung exportieren.
Die Sache ist ... Sie müssen dies zuerst aufschreiben. Dies ist kein technischer Hack. Es ist ein Standardmuster für das Konfigurationsmanagement, daher ist es auch hier nicht ungewöhnlich, aber Sie müssen es aufschreiben. Möglicherweise stellen Sie fest, dass ein installiertes Plug-In Änderungen an der Datenbank vornimmt, die sich in einer anderen Umgebung von den Daten unterscheiden. Daher müssen Sie eine zusätzliche Prozedur durchführen.
Technisch ist fast immer alles möglich. Suchen Sie unter http://www.cmcrossroads.com/forums nach Szenarien, die Dutzende oder Hunderte Male komplexer sind, aber immer denselben Ansatz und denselben Satz von CM-Mustern verwenden.
Kurz gesagt: Legen Sie eine Versionsverwaltungsebene darunter, automatisieren Sie die Zusammenführungen und behandeln Sie die Konflikte, und importieren Sie sie dann in die Zielumgebung. Überlegen Sie sich eine Stream-Strategie, die hier passt, und schreiben Sie sie auf. Führe ein kleines bisschen CM-Management durch. Das wäre die professionelle Lösung, ansonsten installiere ein paar db copy hack, scripts etc ...