Paralel olarak değişiklik yapma konusuna dokunursanız, yapılandırma yönetimi alanına dokunursunuz. Pek çok kalıpla, kendi toplulukları (http://www.cmcrossroads.com/) ve sürüm yönetimi (svn / git olarak) için değil, clearcase gibi yapılandırma yönetimi (kalıplar) desteği için araçlar çok fazladır. (tamamen farklı alanlar).
Bu durumda hala basit bir durum ve bazı sınırlamalar, bazı el işleri ve bazı listeler ile çalışmasını bulacaksınız.
İdeal çözümü daha açıklayıcı hale getirmeyi düşündüğüm senaryo: aynı kod tabanında çalışan birden çok geliştirici, birden çok test ortamı, birden çok kabul ortamı, muhtemelen dünyanın her köşesinde birden çok üretim kabul ortamı.
Bunu biraz daha profesyonel yapmak istersen:
a) Karşılaştığınız tüm Konfigürasyon Öğelerinin bir listesini yazın; bu, WordPress kodunun kendisi, harici eklentiler, içerik, meta veriler olabilir ve bunlardan hangisinin önemli olduğunu bir tür "yönetim" altına almak istediğinize karar verebilirsiniz.
b) meydana gelebilecek iş akışlarını tanımlayın; örneğin bir düzeltmeyle ne olur, yeni bir şey olduğunda gelişme ile ne olur, hangi durumda kendi tarafınızdaki içeriği değiştirirsiniz, ne denir, ne denir ve kim yapar? örneğin yeni bir yazı veya yeni bir eklenti.
c) Paralel çalışma için öncelikle hangi CI'leri yönetmek istediğinizi açıklayın, akışın daima geliştirmeden üretime mi yoksa gerçekten iki yolla mı yapılacağına karar verin.
d) (a) altındaki CI tiplerinin her biri için bir çözüm yazmak. Örneğin, metin olan TÜM (veya php dosyaları, ancak XML dosyalarında ALSO düz metinler gibi dışa aktarılan metinler) birleştirme mümkündür. Bu gerçekten sorun değil ama iyi bir birleştirme aracına ihtiyacınız var. örn. ClearCase ile 3 şekilde elde edersiniz, aşağıdaki durumları birleştirirsiniz: 1) önemsiz birleşimler: bunları otomatik olarak yapacak 2) önemsiz olmayan otomatik: bunu otomatik olarak yapacak, ancak kontrol etmelisiniz 3) önemsiz olmayan otomatik: Çatışma, örneğin 1 hatta birkaç değişiklik yapıldı. Önemsiz olmayanlar, el ile bakmanız gereken en az kısımdır, iyi bir birleştirme aracı, bu örnekte sizi açık alanda (örneğin bir birleştirme işlemi yapar ve belirli bir dosya için diğer ticari veya ticari olmayan birleşme birimlerine bağlayabileceğiniz) yönlendirir. tipleri). Dahası, (a) altında sadece kopyalanması gereken dosyalar belirlediyseniz, davranışları birleştirilmeyecek, ancak birleştirme olmadan diğer sürümün üzerine yazılacak şekilde kopyalanacak (örneğin, değiştirmemiş olduğunuz eklentiler). Bu türlerin çoğu farklı davranışlarla mümkündür. Fakat CI'ler arasındaki ilişkileri yazınız.
O zaman metin temelli olmayan birleştirmeler için, bunların nasıl kullanılacağına dair bir karar vermeniz gerekir, örneğin 2 yerde değiştirilmiş görüntüler. Burada üretimin her zaman tercih edildiğine (en azından benim düşündüğüm gibi) karar verebilirsiniz, ki bu onu basitleştirir.
Yani ... bu sorunu çözmek için farklı akışları destekleyen bir sürüm yönetim aracına ihtiyacınız var. Her akış bir parçayı temsil eder. (Bu ihtiyaçlarınızı bağlı olarak son derece karmaşık olabilir, ancak bu durumda çok basit olduğunu düşünüyorum).
Artık bu akışların WordPress kurulumları altında olmasını sağlayabiliyor ve bunları veritabanının içeriği ile de senkronize edebiliyorsanız ... o zaman birleştirme işlemini CM / versiyonlama aracında gerçekleştirebilir ve ardından diğer ortamlara geri aktarabilirsiniz.
Mesele şu ki ... önce bunu yazmalısın. Bu teknik bir kesmek değil. Yapılandırma Yönetimi etrafındaki varsayılan bir kalıptır, bu yüzden burada da garip olan hiçbir şey yoktur, ancak yazmanız gerekir. Örneğin, kurulu bir eklentinin başka bir ortamda farklı olan bazı verilerle veritabanında değişiklikler yaptığını öğrenebilirsiniz, bu yüzden bunun için fazladan bir işlem yapmanız gerekir.
Teknik olarak hemen hemen her zaman her şey mümkün. Her zaman aynı yaklaşımı ve aynı CM desenlerini kullanmakla birlikte onlarca ya da yüzlerce kez daha karmaşık olan senaryolar için http://www.cmcrossroads.com/forums adresini kontrol edin .
Kısacası: altında bir sürüm yönetim katmanı koymak, birleştirmek otomatikleştirmek ve çatışmaları işlemek, sonra hedef ortamda içe aktarın. Buraya uyan bir akış stratejisi düşün ve yaz. Ufacık bir weeny bit CM yönetimi gerçekleştirin. Aksi takdirde bazı db kopya kesmek, komut dosyaları vb yüklemek profesyonel bir çözüm olurdu ...