Các đơn giản nhất cách tiếp cận là sử dụng một kho lưu trữ duy nhất, vì vậy trừ khi bạn thích sự phức tạp vì sự phức tạp, sau đó mà nên là sự lựa chọn mặc định trong sự vắng mặt của đối số hấp dẫn khác.
Là sự phát triển của máy khách và máy chủ sẽ được thực hiện bởi các tổ chức khác nhau? Sẽ có nhiều triển khai của máy khách (hoặc máy chủ)? Là máy khách nguồn mở và bí mật thực hiện máy chủ? Nếu câu trả lời cho tất cả những câu hỏi này là "Không", thì bất cứ điều gì phức tạp hơn một kho lưu trữ duy nhất có khả năng chỉ mang lại sự bất tiện mà không có lợi ích.
Nếu bạn chọn duy trì các cơ sở mã riêng biệt, bạn sẽ cần các chính sách rõ ràng về cách thức quản lý này, để tránh sự không tương thích và địa ngục phụ thuộc. Sau khi thực hiện một vài trục trặc đầu tiên, cuối cùng bạn có thể phát hiện ra rằng điều an toàn nhất là luôn luôn kiểm tra cả hai kho lưu trữ, xây dựng chúng cùng nhau và triển khai chúng cùng nhau ... điều này rõ ràng đánh bại toàn bộ mục đích tách chúng ra!
Modularity là một tài sản tốt để có, nhưng chia kho không phải là một công cụ để đạt được điều đó. Như đoạn trước ngụ ý, bạn có thể có các thành phần được ghép nối cao được phân chia trên nhiều cơ sở mã (không mong muốn) và tương tự, bạn có thể có các thành phần mô đun cao trong cùng một cơ sở mã (mong muốn).
Trong nhiều lần, tôi đã ủng hộ (thành công) cho nhóm của mình để hợp nhất các kho git hiện có, bởi vì nó đơn giản hóa việc phát triển và triển khai.