Obecnie mamy złożony i nieefektywny system kompilacji składający się z wielu repozytoriów SVN i Git (po około 50%), w tym repozytorium podmodułów git. Mamy też domowe skrypty, które lepiej lub mniej dobrze zarządzają całym procesem.
Głównym punktem naszej bazy kodu (zamkniętego źródła) jest to, że jest ściśle powiązana, a każdy projekt jest wydawany w tym samym czasie w tej samej wersji.
Chcemy przenieść to do prostszego systemu i pojedynczego VCS i rozważamy kilka opcji, w tym: podmoduły git, Google Repo i monorepos. Ostateczny VCS nie jest jeszcze zdefiniowany (z wyjątkiem opcji, które go nakazują) i może być svn, git, a nawet coś innego, jeśli to lepiej pasowałoby do naszej sytuacji.
Próbujemy wymienić plusy i minusy każdego rozwiązania, a jednym z głównych problemów, jakie mamy obecnie w przypadku monorepos, jest to, że udostępnianie niektórych modułów zewnętrznemu podmiotowi nie wydaje się łatwe, a nawet możliwe. Chcemy, aby osoby te mogły kasować i normalnie pracować na tych modułach, ale nie miały dostępu do kodu ani historii reszty repozytorium. W tej chwili nie robimy tego często ani szeroko, ale możemy w przyszłości i nie chcemy, aby stało się to koszmarem, ponieważ podjęliśmy tutaj złą decyzję.
Czy taki system zarządzania uprawnieniami istnieje w systemie VCS?
Czy jest jakiś sposób na złagodzenie tego problemu?