Usando sourcetree / bitbucket come posso gestire più progetti usando una base di codice comune?

1

Ho creato alcune librerie utilizzate da diversi progetti.

Quando apporto le modifiche ai progetti, a volte apporto delle modifiche alla base di codice, e voglio essere in grado di gestirlo tutto tramite sourcetree.

Quindi, ad esempio, ho un progetto con global.js e project1.js. Ho anche un altro progetto con global.js e project2.js.

Non voglio mai unire project2.js con project1 e viceversa, tuttavia, qualsiasi modifica apportata a global.js in entrambi i progetti, voglio essere in grado di unire.

Poiché questo è lavoro per aziende separate, è importante che il codice non venga mai portato al progetto sbagliato.

Questo è ovviamente un semplice esempio, tuttavia, in realtà ci sono molti file da trattare.

Per questi particolari progetti, le modifiche a ogni singolo progetto sono memorizzate in sottocartelle per mantenere separato il codice specifico del progetto nel codice globale.

ad esempio: codebase / includes / global.js etc ..

codebase / modules / project1 o codebase / modules / progetto2

Qual è il modo consigliato di gestirlo usando sourcetree / bitbucket?

    
posta Kris 01.07.2015 - 14:22
fonte

2 risposte

1

Il modo usuale è usare qualsiasi cosa sia comune per la distribuzione di librerie nell'ecosistema per la tua lingua. Per C # pubblicare un pacchetto nuget. Per Java guarda in che modo maven scarica i pacchetti. Per rubino pubblica una gemma di rubino. Per Python distribuire un modulo. Per perl guarda in cpan ecc. Nel tuo codice fai riferimento a qualsiasi cosa pubblichi e il tuo codice è sostanzialmente alla pari con qualsiasi strumento di terze parti che stai utilizzando.

    
risposta data 01.07.2015 - 14:41
fonte
0

Utilizza un repository separato per la tua base di codice comune

Il modo più semplice sarebbe gestire a parte il codice comune, in un repository separato.

Quindi puoi usare git submodules o git subtree per importa il tuo codice comune nell'altro repository.

Utilizza i pacchetti anziché la fusione GIT per importare la base di codice comune

Ancora meglio, La risposta di Esben Skov Pedersen fornisce un'anteprima sulla gestione dei pacchetti. Personalmente conosco bene Maven nel mondo Java. In JavaScript, penso che i due più diffusi siano Bower e NPM .

Scegli la granularità corretta

La granularità deve essere definita in base alle tue esigenze. Ad esempio, se i tuoi progetti 1 e 2 hanno una base di codice comune di grandi dimensioni e il progetto 3 condivide solo un sottoinsieme di questa base di codice comune, puoi tagliare in questo modo:

  • common codebase importazioni minimal subset
  • project 1 importazioni common codebase
  • project 2 importazioni common codebase
  • project 3 importazioni minimal subset

Adatta alle tue esigenze.

    
risposta data 31.07.2015 - 15:42
fonte

Leggi altre domande sui tag