cosa sono i contro e i pro tra i due progetti di controllo della versione di un progetto: repository multipli, vs repository singolo [duplicato]

-2

Sto lavorando a un progetto che è suddiviso in più repository git invece di uno solo. Ogni repository è per una libreria o un'applicazione. Le librerie sono utilizzate dai progetti o da altre librerie.

Quindi mi capita spesso di dover gestire più repository, per tirare l'ultima modifica, per lavorare su una funzione che si estende su più di un repository e me per tenere traccia di quali repository sono interessati , ....

Mi sono chiesto perché il progetto sia suddiviso in più repository invece di uno solo, ma non ho trovato la persona giusta da chiedere.

Quindi quali sono i pro e i contro tra i due progetti di controllo di versione di un progetto: repository multipli, repository singolo o solo alcuni repository?

Grazie.

    
posta Tim 19.04.2017 - 23:00
fonte

1 risposta

0

Avendo diversi sottoprogetti ci sono alcuni scenari che variano in estensione di utilizzo.

Tipicamente: lavorando sulle origini di alcuni progetti e usando semplicemente gli altri come codice con ispezione sorgente (o codice appena decompilato).

Questo può significare compilazione più veloce o più controllo del codice sorgente.

Per lavorare con tali sottoprogetti o moduli, un'infrastruttura di build come maven consente di definire le dipendenze.

  • Il vantaggio di molti repository è un disaccoppiamento maggiore (come in non più utilizzando una libreria in un progetto più grande), una migliore ingegneria (che impedisce le dipendenze cicliche tra moduli).

  • Il vantaggio di un ampio repository: puoi ancora estrarre singoli moduli e specificare una struttura, gerarchia.

  • Lo svantaggio di molti repository è che nel tempo la struttura potrebbe cambiare. La manutenzione di una versione snapshot / taggata in un determinato momento diventerà pelosa.

  • Lo svantaggio di un grande repository: la struttura può diventare disordinata. Manterrai librerie obsolete.

Conclusione: "Dipende"

Mi piace una struttura modulare e stratificata: librerie indipendenti (come per la grafica vettoriale), librerie dipendenti (oggetti DAO) appartenenti ad alcune applicazioni, grandi applicazioni.

Usa qualcosa come Maven, non aver paura di gettare via la cronologia delle versioni e il refactor in generale. Scegli una struttura grande, ma mantieni indipendenti le piccole librerie riutilizzabili (come per i PDF).

I doubt this will help much, one has to experience organizing large projects, splitting them up, doing some refactoring.

    
risposta data 20.04.2017 - 01:48
fonte

Leggi altre domande sui tag