Gdy tylko dotkniesz tematu robienia zmian równolegle, dotkniesz obszaru zarządzania konfiguracją. Z wieloma wzorami, własnymi społecznościami (http://www.cmcrossroads.com/) i narzędziami nie tyle do zarządzania wersjami (jak svn / git), ale do obsługi zarządzania konfiguracją (wzorce), jak na przykład clearcase. (zupełnie inne obszary).
W tym przypadku jest to nadal prosta sytuacja i znajdziesz ją z pewnymi ograniczeniami i pracą ręczną oraz niektórymi listami.
Scenariusz, który zamierzam uczynić bardziej opisowym dla idealnego rozwiązania: wielu programistów pracujących na tej samej bazie kodu, wiele środowisk testowych, wiele środowisk akceptacji, wiele środowisk akceptacji produkcji, prawdopodobnie we wszystkich zakątkach świata.
Jeśli chcesz to zrobić nieco bardziej profesjonalnie:
a) zapisz listę wszystkich elementów konfiguracji, które napotkasz, może to być sam kod WordPress, wtyczki z elementów zewnętrznych, treść, metadane i zdecyduj, które z nich chcesz objąć jakimś „zarządzaniem”, które mają znaczenie.
b) opisać przepływy pracy, które mogą się zdarzyć, np. co dzieje się z poprawką, co dzieje się z rozwojem czegoś nowego, w jakim przypadku zmieniasz treść po swojej stronie, co się nazywa i kto to robi, kto jest jej właścicielem np. nowy post lub nowa wtyczka.
c) w przypadku pracy równoległej najpierw opisz, z którymi elementami CI chcesz zarządzać, zdecyduj, czy przepływ zawsze przebiega od rozwoju do produkcji, czy też naprawdę jest to konieczne na dwa sposoby.
d) dla każdego z typów CI w punkcie (a) napisz uchwałę. Np. Dla WSZYSTKICH, które są tekstem (lub eksportowanym tekstem, takim jak pliki php, ale TAKŻE zwykły tekst w plikach XML), scalanie jest możliwe. To naprawdę nie jest problem, ale potrzebujesz dobrego narzędzia do scalania. np. z ClearCase uzyskasz w 3 sposób połączenie następujących sytuacji: 1) trywialne scalenia: zrobi to automatycznie 2) nietrywialne automatyczne: zrobi to automatycznie ALE musisz to sprawdzić 3) nie trywialne nieautomatyczne: to jest konfliktem, np. w 1 linii wprowadzono kilka zmian. Nie trywialne to minimalna część, o którą musisz dbać ręcznie, dobre narzędzie do łączenia poprowadzi Cię w tym np. Jedno w przejrzystej (które również łączy słowa i gdzie można połączyć w inne komercyjne lub niekomercyjne połączenia dla określonego pliku typy). Ponadto, jeśli zidentyfikowałeś w (a) plikach, które powinny być tylko kopiowane, to ich zachowanie nie byłoby scalane, ale po prostu kopiowane w jeden sposób, zastępując inną wersję bez scalania (np. Wtyczki, których nie zmodyfikowałeś). Wiele z tych typów jest możliwych przy różnych zachowaniach. Ale zapisz relacje między CI,
Następnie w przypadku połączeń nie opartych na tekście musisz podjąć decyzję, jak sobie z nimi poradzić, np. Obrazy, które zostały zmienione w 2 miejscach. Można tu zdecydować, że produkcja zawsze ma pierwszeństwo (przynajmniej tak sądzę), co czyni to prostym.
Więc ... aby rozwiązać ten problem, potrzebujesz narzędzia do zarządzania wersjami, które obsługuje różne strumienie. Każdy strumień reprezentowałby jedną część. (może to być niezwykle skomplikowane w zależności od potrzeb, ale w tym przypadku uważam, że jest to bardzo proste).
Jeśli możesz teraz mieć te strumienie pod sobą, instalacje WordPress i zsynchronizować je również z zawartością bazy danych itp., Możesz wykonać scalenia w narzędziu CM / wersjonowania, a następnie wyeksportować je z powrotem do innego środowiska.
Chodzi o to, że ... musisz to najpierw zapisać. To nie jest techniczny hack. Jest to domyślny wzorzec zarządzania konfiguracją, więc nie ma w tym nic dziwnego, ale trzeba go zapisać. Może się okazać, że np. Zainstalowana wtyczka wprowadza zmiany w bazie danych przy użyciu niektórych danych, które są inne w innym środowisku, dlatego musisz mieć dodatkową procedurę wokół tego.
Technicznie prawie zawsze wszystko jest możliwe, sprawdź http://www.cmcrossroads.com/forums w przypadku scenariuszy, które są dziesiątki lub setki razy bardziej skomplikowane, ale zawsze przy użyciu tego samego podejścia i tego samego zestawu wzorców CM.
w skrócie: umieść pod nią warstwę zarządzania wersjami, zautomatyzuj scalanie i rozwiąż konflikty, a następnie zaimportuj w środowisku docelowym. Wymyśl odpowiednią dla siebie strategię strumieniową i zapisz ją. Wykonaj małe zarządzanie bitami CM. To byłoby profesjonalne rozwiązanie, w przeciwnym razie zainstaluj hack kopiowania db, skrypty itp ...