Ho una libreria e diversi piccoli programmi che la usano: come dovrei strutturare i miei repository git?

7

Ho un codice che usa una libreria che io e altri spesso modificiamo (di solito solo tramite aggiungendo funzioni e metodi). Teniamo ognuno un fork locale della libreria per nostro uso.

Ho anche molti piccoli programmi "driver" (~ 100 righe) che usano la libreria e sono usati esclusivamente da me. Attualmente, ho sia i programmi di driver che la libreria nello stesso repository, perché spesso apporto delle modifiche ad entrambi che sono connessi logicamente (aggiungendo una funzione alla libreria e quindi chiamandola).

Vorrei unire la mia fork della libreria con le forchette dei miei colleghi, ma non voglio che i programmi del driver facciano parte della libreria unita.

Qual è il modo migliore per organizzare i repository git per una grande libreria condivisa che deve essere unita di frequente e una serie di piccoli programmi che hanno modifiche che sono connesse alle modifiche nella libreria?

    
posta Dan 09.10.2012 - 23:16
fonte

2 risposte

4

Sembra adatto per git submodules - sposta la libreria nel proprio, pubblico repository, quindi aggiungilo come sottodulatore git al repository in cui mantieni i tuoi programmi di driver. Se non hai usato i sottomoduli git, ci vorrebbe un po 'per abituarsi; capire come funziona richiede una certa conoscenza degli interni di Git. Ecco un tutorial che ho trovato utile.

    
risposta data 10.10.2012 - 01:00
fonte
2

Potresti fare in modo che la libreria sia un unico repository per sviluppatore, in modo che ogni sviluppatore mantenga la propria fork ma possa trarre l'uno dall'altro.

Potresti fare in modo che la libreria sia un repository condiviso in modo tale che non sia previsto che i commit che vanno al master causino problemi non comunicativi per gli altri sviluppatori.

Entrambi hanno una leggera complicazione in quanto, data una versione di un programma driver, potrebbe essere difficile tornare alla versione della libreria; dovresti decidere che non è un problema o iniziare a monitorare la versione di cui hanno bisogno i tuoi programmi di gestione.

L'altra soluzione principale è non fare nulla, ma come hai visto git non è adatto per trattare parte di un repository nel suo insieme, a differenza del suo cugino Subversion leggermente ingombrante e centralizzato.

Risposte più specifiche potrebbero dipendere dalla conoscenza della lingua in cui sono scritti i programmi della biblioteca e del client.

    
risposta data 10.10.2012 - 00:38
fonte

Leggi altre domande sui tag