La mia azienda sta modificando il nostro strumento di controllo della versione da Rational ClearCase a Git. Abbiamo il seguente scenario di sviluppo e siamo curiosi di sapere se esiste un modello appropriato da seguire con Git per ottenere lo stesso comportamento che abbiamo in ClearCase.Qual è l'equivalente in Git a un componente di sola lettura in ClearCase?
Ecco alcuni punti fondamentali per la nostra situazione:
- Abbiamo un certo numero di applicazioni discrete. Chiamiamo questi AppA, AppB e AppC.
- Abbiamo anche alcuni file (script di compilazione, ecc.) Comuni a tutti i progetti. Chiamiamo questo Strumenti.
- Per ogni taglio del codice AppA, AppB o AppC, è necessario un taglio specifico del codice Strumenti.
- La maggior parte dei nostri sviluppatori non modifica mai il codice degli strumenti.
Per ClearCase, Abbiamo modellato questo come questo:
Componenti: app_a, app_b, app_c, strumenti
Progetti: AppA, AppB, APPC, Strumenti
Project AppA include app_a come componente di lettura/scrittura e strumenti come componente di sola lettura.
Project AppB include app_b come componente di lettura/scrittura e strumenti come componente di sola lettura.
Project AppC include app_c come componente di lettura/scrittura e strumenti come componente di sola lettura.
Gli strumenti di progetto includono strumenti come componente di lettura/scrittura.
Ogni linea di base per i progetti App * fa riferimento a una baseline sia sui comp_app di app_ * che di strumenti. Quando gli sviluppatori rebase alla linea di base consigliata, inseriscono le modifiche da entrambi i componenti.
Per Git, riteniamo che i sottomoduli potrebbero essere la cosa più vicina alla risposta giusta. Tuttavia, quando si esegue il pull/rebasing di un repository, sembra che sia necessario un ulteriore passaggio per aggiornare il codice del sottomodulo. Idealmente, vorremmo essere trasparenti. Inoltre, non ci interessa necessariamente sapere cosa è cambiato in un sottomodulo dal punto di vista del repository principale; ci interessa solo un momento per l'intero sottomodulo.