Alla ricerca di suggerimenti sulla gestione della complessità con i repository SCM

0

Sono uno sviluppatore solista nel mio dipartimento e ho molti progetti individuali, tutti creati e gestiti da me. Ho iniziato a utilizzare SVN a ProjectLocker tramite Versioni sul Mac un paio di anni fa, quando la varietà di progetti iniziava a diventare difficile.

Scenario 1 : Ora ho un processo che è di una complessità ragionevole può essere suddiviso in più applicazioni più piccole e condividono tutti i file. In una fase, esiste un singolo file condiviso, un file delle costanti, condiviso tra un'app Cocoa e un framework dell'app iPhone. Nella seconda fase, il framework dell'app iPhone verrà utilizzato per creare singole app delle stesse classi ilk-controller e quali non saranno tutte uguali, ma con contenuti diversi in ciascuna.

Il problema che sto attraversando è che il file nella prima fase si trova in un repository con l'applicazione che l'ha avviato e il framework dell'app si trova in un secondo repository separato.

Scenario 2 : Ho un'altra struttura applicativa che si basa parzialmente sul codice di un progetto open source. Questo è tutto lavoro interno, non commerciale, ma ancora una volta, il framework applicativo verrà utilizzato per creare una varietà di prodotti e processi unici.

Quindi, ora ho un repository gestito internamente e uno gestito esternamente fuori dal mio controllo. Apporto piccole modifiche al codice open source per soddisfare le esigenze del mio framework quando c'è un aggiornamento che scarico, ma non mi riprendo mai nel repository esterno (anche se, ora che ci penso, non penso di essere io ' o commettendo il mio o. Oops).

Il problema Ho impostato tutto questo sul mio Mac di produzione abbastanza bene, ma la duplicazione e il mantenimento di quell'ambiente sul mio portatile sono stati difficili. Per lo scenario 1, ho pensato di unire questi due progetti insieme nello stesso repository perché sono, per tutti gli effetti, inestricabilmente collegati. Ma, Scenario 2, penso di essere bloccato a gestire i file nel miglior modo possibile.

La domanda Mi chiedo se qualcuno ha qualche consiglio su come gestire una di queste situazioni, così come altri scenari SCM complessi quando si tratta di collegare vari file da vari repository insieme. La mia familiarità con SVN deriva solo dal mio lavoro con Versions. È stato grandioso, ma sono un po 'fuori dalla mia profondità qui.

    
posta Philip Regan 07.01.2011 - 18:44
fonte

1 risposta

1

Per il primo problema, dovresti esaminare i sottoreposi SVN usando una definizione esterna. Si inserisce il codice di condivisione nel proprio repository, mentre i progetti che condividono il codice includono ciascuno un riferimento esterno al sottorepo. Se si commettono aggiornamenti al codice condiviso, è anche possibile aggiornare il riferimento del sottoreport per fare riferimento alla nuova revisione.

Per il secondo problema, è possibile utilizzare nuovamente i sottorepos (supponendo che il progetto esterno si trovi anche in SVN) oppure utilizzare il modello di branca del fornitore.

Entrambe sono ben descritte nel SVN Book on-line (definizioni esterne nel capitolo 3, e rami del venditore nel capitolo 4).

    
risposta data 07.01.2011 - 19:58
fonte

Leggi altre domande sui tag