Saat ini kami memiliki sistem build yang kompleks dan tidak efisien yang terdiri dari banyak repo SVN dan Git (masing-masing sekitar 50%), termasuk yang merupakan repo submodul git. Kami juga memiliki skrip buatan sendiri yang mengelola semuanya dengan baik.
Poin utama dari basis kode (sumber tertutup) kami adalah bahwa ia digabungkan secara ketat, dan setiap proyek dirilis pada waktu yang sama di bawah versi yang sama.
Kami ingin memindahkan ini ke sistem yang lebih sederhana dan VCS tunggal, dan sedang mempertimbangkan beberapa opsi, termasuk: git submodules, google Repo, dan monorepos. VCS final belum didefinisikan (kecuali untuk opsi yang mengamanatkannya), dan dapat berupa svn, git atau bahkan sesuatu yang lain jika itu akan lebih sesuai dengan situasi kita.
Kami mencoba membuat daftar plus dan minus dari setiap solusi dan salah satu masalah utama yang kami miliki saat ini dengan monorepos adalah tampaknya tidak mudah, atau bahkan mungkin untuk berbagi hanya beberapa modul ke entitas eksternal. Kami ingin orang-orang itu dapat melakukan checkout dan bekerja secara normal pada modul-modul itu, tetapi tidak dapat mengakses kode atau riwayat dari sisa repo. Itu bukan sesuatu yang sering kita lakukan atau secara luas saat ini, tetapi kita mungkin di masa depan, dan kita tidak ingin ini menjadi mimpi buruk karena kita membuat keputusan yang buruk di sini.
Apakah sistem manajemen privilege semacam itu ada dalam sistem VCS?
Atau adakah cara untuk mengurangi masalah ini?
sumber
Jawaban:
Dari uraian Anda, saya pikir Anda memiliki beberapa opsi di sini:
Sayangnya tidak satu pun dari opsi ini yang sempurna, tetapi semuanya valid tergantung pada kondisi basis kode Anda. Deskripsi Anda kedengarannya seperti opsi 3 mungkin paling berhasil di sini.
sumber