The sederhana pendekatan adalah untuk menggunakan repositori tunggal, jadi kecuali Anda seperti kompleksitas demi kompleksitas ini, maka yang harus menjadi pilihan default dalam ketiadaan argumen menarik sebaliknya.
Apakah pengembangan klien dan server akan dilakukan oleh organisasi yang berbeda? Apakah akan ada beberapa implementasi dari klien (atau server)? Apakah klien open source dan implementasi server rahasia? Jika jawaban untuk semua pertanyaan ini adalah "Tidak", maka sesuatu yang lebih kompleks daripada repositori tunggal kemungkinan hanya membawa ketidaknyamanan tanpa manfaat.
Jika Anda memilih untuk mempertahankan basis kode yang terpisah, Anda akan memerlukan kebijakan yang jelas tentang bagaimana ini dikelola, untuk menghindari ketidakcocokan dan neraka ketergantungan. Setelah mengerjakan beberapa cegukan pertama, Anda mungkin akhirnya menemukan bahwa hal teraman adalah selalu memeriksa kedua repositori bersama, membangunnya bersama, dan menempatkannya bersama-sama ... yang jelas mengalahkan seluruh tujuan memisahkannya!
Modularitas adalah properti yang bagus untuk dimiliki, tetapi memisahkan repositori bukanlah alat untuk mencapainya. Seperti paragraf sebelumnya menyiratkan, Anda dapat memiliki komponen yang sangat berpasangan yang terbagi atas beberapa basis kode (tidak diinginkan), dan Anda juga dapat memiliki komponen yang sangat modular dalam basis kode yang sama (diinginkan).
Pada lebih dari satu kesempatan, saya telah mengadvokasi (dengan sukses) agar tim saya menggabungkan repositori git yang ada, karena ini menyederhanakan pengembangan dan penyebaran.