Come faccio ad organizzare 2 diversi progetti con codice condiviso

0

So che ci sono state le stesse domande poste più volte sullo stackexchange dei programmatori. Penso che la mia domanda sia più specifica e quindi ho deciso di iniziare una nuova domanda. Il mio attuale è un progetto che ha modelli, viste e librerie (front-end e back-end entrambi). La struttura della mia directory di progetto è simile a:

/php/libs/emailLib
/php/libs/serviceLib
/php/libs/databaseLib
/php/services/Service1
/php/services/Service2
/php/services/Service3
/php/services/Service4
/js/module2
/js/module1
/models/Model1
/models/Model2
/models/Model3

Ho usato git per il controllo del codice sorgente del progetto corrente. Ora sto per iniziare un nuovo progetto che è indipendente da quello attuale, ma molti codici possono essere condivisi tra il nuovo e il progetto corrente. Sto creando un altro repository per il nuovo progetto. Per le librerie posso creare un sottomodulo git per librerie / php / libs. Ma i servizi sono come pochi di loro possono essere condivisi solo come servizio per la traduzione può essere condiviso, ma il servizio per il servizio per la generazione di categorie non può essere condiviso (perché il mio nuovo progetto non ha nulla a che fare con le categorie).

Come condivido i servizi? E ci sono poche altre cartelle / programmi (dove solo pochi di essi sono condivisi tra tutti).

    
posta Umakant Patil 30.01.2015 - 10:16
fonte

2 risposte

2

Forse potresti creare un terzo progetto sul tuo controllo sorgente, che contiene solo le librerie condivise. Quindi, in breve, gli altri due progetti faranno riferimento a questo gruppo condiviso di file sorgente.

Questo ti permetterebbe di avere un gruppo di librerie condivise che sono autonomi e non sono immagazzinate nel contesto di un altro progetto. Ciò presuppone che si desideri propagare qualsiasi modifica apportata ai servizi condivisi di un'applicazione a un'altra.

Se quanto sopra non è il caso (potresti voler fare personalizzazioni per progetto), potresti comunque creare il terzo progetto come una struttura condivisa, ma una volta verificato il tuo codice condiviso, lo includeresti con il progetto corrente e controllarlo nel proprio repository. Questo disconnetterebbe il codice condiviso dal suo repository e ti permetterebbe di effettuare personalizzazioni per progetto.

Se vedi che alcune funzionalità vengono inserite in più progetti, puoi modificare la struttura della cartella condivisa di Vanilla e aggiungere i nuovi file. In questo modo, qualsiasi nuovo progetto che creerai ora avrà accesso alla nuova funzionalità senza intaccare il tuo vecchio progetto.

    
risposta data 30.01.2015 - 11:42
fonte
0

Hai preso in considerazione l'uso di rami? Sembra che tu non lavorerai su entrambi i progetti contemporaneamente. Puoi diramare il secondo progetto dal primo e se c'è qualcosa che desideri spostare nel tuo primo progetto, puoi unire le tue modifiche.

    
risposta data 30.01.2015 - 10:24
fonte