Come mantenere aggiornato il plugin riutilizzabile durante la programmazione da un progetto con git

-1

Ho già fatto questa domanda per un migliaio di volte, ma non riesco a trovare la risposta corretta.

Mi piacerebbe separare una parte del codice riutilizzabile dal progetto attuale, tuttavia sia il progetto che la parte del codice riusabile hanno bisogno l'uno dell'altro.

Facciamo un esempio. Ho installato un CMS funzionante che ha il proprio repository git. Ho un modulo di catalogo che ha anche il proprio repository git. Ora vorrei integrare il modulo del catalogo nel mio repository git CMS. Per farlo uso attualmente copia / incolla che risulta nello stesso codice in due punti. Ora noto un bug nel modulo mentre eseguo il repository git CMS e aggiungo un prodotto.

Attualmente per correggere questo bug, devo apportare modifiche in due punti: il repository git funzionante e il modulo del catalogo separato in modo che i prossimi progetti non lo abbiano più.

La maggior parte delle volte le cose si perdono in copia / incolla ecc, quindi mi piacerebbe aggiungere il repository del catalogo al repository cms attraverso git come 'sottomodulo', ho letto a riguardo ma non sembra capiscilo Quindi ogni volta che apporto una modifica al repository cms che contiene le modifiche al modulo del catalogo dovrei essere in grado di commettere queste modifiche nell'altro repository git.

Se non ho senso qui, per favore commenta e proverò a spiegarlo meglio. Questo è comunque un problema per me, e probabilmente per molti altri.

    
posta Ciryk Popeye 25.10.2017 - 13:49
fonte

1 risposta

1

Il tuo CMS si aspetta una certa struttura e Git si aspetta una certa struttura, ma i due non sono d'accordo. Possiamo sistemarne uno o creare un ponte tra queste strutture.

Fissare la struttura è possibile solo se si tratta di un CMS di produzione nazionale. In tal caso, dovrebbe essere facile estenderlo in modo che il modulo possa essere caricato da più punti, non solo una specifica cartella di moduli nell'albero dei sorgenti. Puoi quindi utilizzare i sottomoduli Git.

"Correggere" Git non sembra saggio perché in questo caso useresti uno strumento non standard. Non puoi sovrapporre più repository Git alla stessa struttura di directory.

Per collegare tra le due strutture, puoi creare il bridge a livello di file system o a livello di architettura software.

A livello di file system, puoi forse usare i link simbolici. Il tuo CMS prevede il modulo a src/backend/Modules/ModuleName , ma il modulo si trova a SubmoduleName/src/ModuleName . Potrebbe essere possibile posizionare un collegamento simbolico dalla posizione prevista che punta alla posizione effettiva. Tuttavia, ciò potrebbe causare problemi durante il caricamento delle dipendenze del modulo o potrebbe essere vietato per motivi di sicurezza. Ma se funziona, questa sarebbe una soluzione abbastanza semplice. Git supporta i collegamenti simbolici.

A livello di architettura, è possibile creare un modulo fittizio nella posizione richiesta in grado di caricare il modulo effettivo e inoltrare tutte le operazioni al modulo effettivo. Il CMS può quindi caricare il modulo fittizio senza problemi.

    
risposta data 27.10.2017 - 20:00
fonte

Leggi altre domande sui tag