Domanda

sto lavorando per migliorare il codice sorgente di ridondanza in alcuni progetti e sto di fronte a un problema.

Diciamo che ho alcune utility che uso Acros più progetti. Esempio: script di build e script di test che sono sufficientemente generico per essere utilizzato su tutti i progetti, ma anche avere alcuni file di configurazione che possono essere personalizzati per ogni progetto.

mi piacerebbe mantenere la logica di build-script in un unico luogo (correzione di bug e l'aggiunta di miglioramenti) e ottenere i cambiamenti facile in tutti i progetti che lo utilizzano, ma anche senza rompere i file di configurazione.

Lo so che non posso fare questo con sottomoduli git come avrebbe bisogno di Pe impegnata al repository di utilità al posto del progetto un file di configurazione.

Ho anche guardando oltre git-sottostruttura , ma non sono sicuro che sia fare quello che voglio.

Qualcuno entrare in questa prima?

È stato utile?

Soluzione

Lo so che non posso fare questo con sottomoduli git come avrebbe bisogno di essere impegnata nella repository di utilità al posto del progetto un file di configurazione.

In realtà si potrebbe usare sottomoduli, se ciascuno dei vostri progetti è stato un repository git nel proprio.
Poi ogni progetto (repository genitore) sarebbe fare riferimento a una specifica commettere di un ramo specifico della repository di utilità, ogni ramo con quelle utility su misura per ogni progetto.

Tuttavia, per creare un collegamento strettamente insieme di file (programmi di utilità su un lato, i progetti uno dall'altro), è meglio tenere tutto in un unico repository e di utilizzare un contenuto driver di filtro :

driver di filtro dei contenuti

Si dovrà:

  • delle utility generiche di versione come modello (cioè senza i loro valori)
  • I file di valore (uno per ogni progetto)
  • uno script di versione in grado, al momento della partenza nella sceneggiatura 'smudge', per generare le utilità finali in ogni progetto (fornito lo script è in grado di rilevare il contenuto del modello di utilità ).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top