並行して変更を行うというトピックに触れるとすぐに、構成管理の領域に触れます。多くのパターン、独自のコミュニティ(http://www.cmcrossroads.com/)、およびツール(バージョン管理用(svn / gitなど)ではなく、クリアケースなどの構成管理(パターン)のサポート用)。(まったく異なる領域)。
この場合、それはまだ単純な状況であり、いくつかの制限といくつかの手動作業といくつかのリストで動作することがわかります。
理想的なソリューションをよりわかりやすく説明するために考えているシナリオ:同じコードベースで作業する複数の開発者、複数のテスト環境、複数の受け入れ環境、世界の隅々にある複数の生産受け入れ環境。
これをもう少し専門的にしたい場合:
a)遭遇するすべての構成アイテムのリストを書き留めます。これは、WordPressコード自体、外部からのプラグイン、コンテンツ、メタデータであり、これらのどれを何らかの「管理」の下に置くかを決定します。
b)発生する可能性のあるワークフローを説明します。たとえば、修正により発生すること、新しい開発中に発生すること、どのような場合に自分の側でコンテンツを変更するか、何を呼び出すか、誰がそれを所有するかたとえば、新しい投稿または新しいプラグイン。
c)並行作業では、最初にどのCIを管理するかを説明し、フローが常に開発から本番への流れであるか、またはすべてを2つの方法で行う必要があるかを決定します。
d)(a)の下の各CIタイプについて、解決策を記述します。たとえば、すべてのテキスト(またはphpファイルのようなエクスポートされたテキストですが、XMLファイルのプレーンテキスト)のマージが可能です。これは実際には問題ありませんが、適切なマージツールが必要です。たとえば、ClearCaseを使用すると、3つの方法で以下の状況をマージできます。1)自明なマージ:これらは自動的に実行されます。2)非自明な自動:これらは自動的に実行されますが、チェックする必要があります3)非自明な非自動:これ競合です。たとえば、1行でいくつかの変更が行われました。自明ではない部分は、手作業で扱う必要のある最小限の部分です。適切なマージツールは、これを導きます。たとえば、クリアケース(ワードマージを行い、特定のファイルの他の商用または非商用のマージにリンクできます)タイプ)。さらに(a)の下でコピーのみが必要なファイルを特定した場合、それらの動作はマージされず、マージせずに他のバージョンを上書きするようにコピーされます(たとえば、変更していないプラグイン)。これらのタイプの多くは、異なる動作で可能です。しかし、CI間の関係を書き留め、
次に、非テキストベースのマージの場合、2つの場所で変更された画像など、それらの処理方法を決定する必要があります。ここでは、生産には常に優先順位があると判断できます(少なくともそれは私が思うことです)。
したがって...この問題を解決するには、さまざまなストリームをサポートするバージョン管理ツールが必要です。各ストリームは1つの部分を表します。(これはニーズによっては非常に複雑になる可能性がありますが、この場合は非常に単純だと思います)。
これらのストリームをWordPressインストールで管理し、データベースのコンテンツなどと同期できるようになった場合、CM /バージョン管理ツールでマージを実行し、他の環境にエクスポートして戻すことができます。
事は...最初にこれを書き留める必要があります。これは技術的なハックではありません。これはConfig Managementのデフォルトのパターンなので、ここでも奇妙なことは何もありませんが、書き留めておく必要があります。たとえば、インストールされたプラグインが別の環境とは異なるデータを使用してデータベースに変更を加える場合があるため、これについて追加の手順が必要です。
技術的にはほぼすべてが可能です。http://www.cmcrossroads.com/forumsで、常に同じアプローチを使用し、同じCMパターンのセットを使用しているにもかかわらず、数十倍または数百倍複雑なシナリオを確認してください。
要するに、バージョン管理レイヤーをその下に置き、マージを自動化し、競合を処理してから、ターゲット環境にインポートします。ここに適合するストリーム戦略を考えて書き留めてください。ちょっとしたCM管理を実行します。それ以外の場合は、dbコピーハック、スクリプトなどをインストールするプロのソリューションになります。