Ngay khi bạn chạm vào chủ đề thực hiện các thay đổi song song, bạn chạm vào khu vực quản lý cấu hình. Với rất nhiều mẫu, cộng đồng riêng (http://www.cmcrossroads.com/) và các công cụ không quá nhiều để quản lý phiên bản (như svn / git) nhưng để hỗ trợ quản lý cấu hình (mẫu) như Clearcase. (khu vực hoàn toàn khác nhau).
Trong trường hợp này vẫn là một tình huống đơn giản và bạn sẽ thấy nó hoạt động với một số hạn chế và một số công việc thủ công và một số danh sách.
Kịch bản mà tôi đang nghĩ đến để làm cho nó trở nên mô tả hơn về giải pháp lý tưởng: nhiều nhà phát triển làm việc trên cùng một cơ sở mã, nhiều môi trường thử nghiệm, nhiều môi trường chấp nhận, nhiều môi trường chấp nhận sản xuất có thể ở mọi nơi trên thế giới.
Nếu bạn muốn làm điều này chuyên nghiệp hơn một chút:
a) viết ra một danh sách tất cả các Mục cấu hình mà bạn gặp phải, đây có thể là mã WordPress, các plugin từ bên ngoài, nội dung, siêu dữ liệu và quyết định những mục nào bạn muốn mang theo một loại "quản lý" nào.
b) mô tả các quy trình công việc có thể xảy ra, ví dụ như điều gì xảy ra với bản sửa lỗi, điều gì xảy ra với sự phát triển mới, trong trường hợp nào bạn thay đổi nội dung về phía bạn, cái gì được gọi và ai là chủ sở hữu của nó ví dụ một bài viết mới hoặc một plugin mới.
c) để làm việc song song trước tiên mô tả bạn muốn quản lý CI nào, quyết định xem dòng chảy luôn luôn từ phát triển đến sản xuất hay nếu thực sự cần thiết phải thực hiện tất cả hai cách.
d) cho mỗi loại CI theo (a) viết độ phân giải. Ví dụ: TẤT CẢ đó là văn bản (hoặc văn bản được xuất như tệp php nhưng cũng có thể hợp nhất văn bản thuần túy trong tệp XML). Điều này thực sự không có vấn đề nhưng bạn cần một công cụ hợp nhất tốt. ví dụ: với ClearCase, bạn sẽ có được 3 cách hợp nhất các tình huống sau: 1) hợp nhất tầm thường: nó sẽ tự động thực hiện 2) tự động không tầm thường: nó sẽ tự động thực hiện NHƯNG bạn cần kiểm tra nó 3) không tầm thường không tự động: điều này là một xung đột, ví dụ trên 1 dòng, một số thay đổi đã được thực hiện. Các phần tử không phải là phần tối thiểu mà bạn cần quan tâm một cách thủ công, một công cụ hợp nhất tốt sẽ dẫn bạn đến điều này, ví dụ như một phần trong văn bản (cũng hợp nhất từ và nơi bạn có thể liên kết trong các sáp nhập thương mại hoặc phi thương mại khác cho tệp cụ thể các loại). Furtermore nếu bạn đã xác định dưới (a) các tệp chỉ được sao chép thì hành vi của chúng sẽ không được hợp nhất mà chỉ được sao chép một cách ghi đè lên phiên bản khác mà không cần hợp nhất (ví dụ: các plugin mà bạn chưa sửa đổi). Nhiều loại trong số này là có thể với các hành vi khác nhau. Nhưng viết ra các mối quan hệ giữa CI,
Sau đó, đối với các kết hợp không dựa trên văn bản, bạn cần đưa ra quyết định về cách xử lý chúng, ví dụ như hình ảnh đã được thay đổi ở 2 vị trí. Bạn có thể quyết định ở đây rằng sản xuất luôn có ưu tiên (ít nhất đó là những gì tôi nghĩ), điều này làm cho nó đơn giản.
Vì vậy, ... để giải quyết vấn đề này, bạn cần một công cụ quản lý phiên bản hỗ trợ các luồng khác nhau. Mỗi luồng sẽ đại diện cho một phần. (điều này có thể vô cùng phức tạp tùy thuộc vào nhu cầu của bạn nhưng trong trường hợp này tôi nghĩ nó rất đơn giản).
Nếu bây giờ bạn có thể quản lý để có các luồng này trong cài đặt WordPress của mình và đồng bộ hóa chúng với nội dung của cơ sở dữ liệu, v.v ... thì bạn có thể thực hiện việc hợp nhất trong công cụ CM / phiên bản và sau đó xuất lại trong môi trường khác.
Điều đó là ... bạn cần viết nó xuống trước. Đây không phải là một hack kỹ thuật. Đây là một mẫu mặc định xung quanh Quản lý cấu hình nên không có gì lạ ở đây nhưng bạn cần phải viết nó xuống. Bạn có thể thấy ví dụ rằng một plugin đã cài đặt thực hiện thay đổi trong cơ sở dữ liệu với một số dữ liệu khác với môi trường khác, vì vậy bạn cần có một quy trình bổ sung xung quanh vấn đề này.
Về mặt kỹ thuật hầu như mọi thứ đều có thể kiểm tra http://www.cmcrossroads.com/forums cho kịch bản phức tạp hơn hàng chục hoặc hàng trăm lần mặc dù luôn sử dụng cùng một cách tiếp cận và sử dụng cùng một bộ mẫu CM.
Tóm lại: đặt một lớp quản lý phiên bản bên dưới nó, tự động hóa các phép hợp nhất và xử lý các xung đột, sau đó nhập vào môi trường đích. Nghĩ ra một chiến lược stream phù hợp ở đây và viết nó ra. Thực hiện quản lý CM bity teeny. Đó sẽ là giải pháp chuyên nghiệp nếu không cài đặt một số bản sao db hack, script vv ...