Prima di tutto, la struttura di un repository Subversion è solo un albero di directory. L'uso delle directory 'trunk', 'branches' e 'tags' è solo una convenzione di comunità. Come ogni convenzione è meglio per te attenersi ad essa, ma non obbligatoria. Detto questo, utilizzo un repository UNICO per un'applicazione e all'interno di questo repository, la classica struttura 'trunk', 'branches' e 'tags'. Ma se l'applicazione è abbastanza grande o ha un gruppo di moduli hai due alternative:
A: (per versioni condivise tra i moduli)
trunk (modulo-A, modulo-B, modulo ...)
B: (le versioni andranno in modo indipendente per ciascun modulo)
modulo-A (tronco, rami, tag); modulo-B (tronco, rami, tag)
La seconda alternativa potrebbe essere implementata utilizzando un singolo repository o multipli, nel SVN Book (link sotto) si ha una descrizione di ciascuno e dei relativi vantaggi.
Se non hai familiarità con l'uso del "tronco" delle directory, "rami" e "tag", qui hai una breve descrizione, ma fai riferimento a SvN Book e cerca "Strategie per la distribuzione del repository" e "Layout del repository consigliato" .
- trunk: "linea principale" di sviluppo
- rami: copie divergenti delle linee di sviluppo
- tag: nomi, istantanee stabili di una particolare linea di sviluppo
Come li uso?
- La prima struttura del progetto è stata caricata nel trunk.
- Ogni volta che arriva un nuovo requisito o progetto, copia il contenuto del tronco in un nuovo ramo (con un nome rappresentante).
- Lavoriamo su quella filiale fino al completamento degli UAT (User Acceptance Testing).
- Successivamente, reintegriamo il ramo con il tronco (unione). Nota: se più di un ramo verrà rilasciato per la produzione devi fare tutte le unioni prima e testare idealmente l'integrazione di tutte le modifiche, utilizzando il codice di accesso.
- Infine creiamo un tag, per contrassegnare il rilascio di questa versione nell'ambiente di produzione. Nota: tutti i tag sono di sola lettura, nessuno del team può modificare un tag dopo la sua creazione. Questa semplice regola ti consente di accedere a una versione stabile nota del codice se si verificano alcuni problemi.
In breve (e qui ci sono i concetti chiave):
- Leggi il libro SVN.
- Comprendi le basi della sovversione
- Acquisisci familiarità con tutte le diverse alternative progetti structres e scegli quello più adatto alle tue esigenze.
- Familiarizza con tutti i diversi modelli di ramificazione , utilizza quello corrispondente in base al lavoro da svolgere (una correzione di bug, una richiesta di modifica, un progetto lungo, ecc. .).
- Comprendi cosa sono tronco, rami e tag, specialmente l'ultimo.
- Comprendi cos'è una copia di lavoro, un repository, una revisione, il concetto di copia economica
- Ricorda di non fare la versione dei tuoi binari, solo le tue fonti. Ho fatto questo chiarimento a causa del tuo attuale layout, hai cose chiamate "DLLxxx", quindi presumo siano binari (file .dll).
Dopo l'implementazione, se hai problemi a far lavorare i tuoi partner con lo strumento, ecco un possibile motivo di questo comportamento: Perché gli sviluppatori non utilizzano un sistema di controllo versione (CVS, SVN, Git, Hg, ...)? , si prega di lasciare i tuoi commenti o esperienze su come ottenere un team sull'uso di uno strumento di gestione delle versioni.