Ho visto queste parole molto spesso nelle discussioni su Subversion (e suppongo in generale sui repository). Ho usato SVN per i miei progetti negli ultimi anni, ma non ho mai afferrato il concetto completo di queste directory.
Che cosa significano?
In SVN un tag e un ramo sono molto simili.
Tag = una fetta definita nel tempo, di solito usata per i rilasci
Ramo = anch'esso una fetta definita nel tempo su cui lo sviluppo può continuare, di solito usato per versioni importanti come 1.0, 1.5, 2.0, ecc, poi quando si rilascia si tagga il ramo. Questo permette di continuare a supportare un rilascio di produzione mentre si va avanti con le modifiche nel tronco
Trunk = spazio di lavoro per lo sviluppo, questo è dove tutto lo sviluppo dovrebbe avvenire, e poi le modifiche vengono fuse di nuovo dai rilasci del ramo.
In realtà non hanno alcun significato formale. Una cartella è una cartella in SVN. Sono un modo generalmente accettato per organizzare il tuo progetto.
Il tronco è dove tieni la tua linea principale di sviluppo. La cartella branch è dove potreste creare, beh, rami, che sono difficili da spiegare in un breve post.
Un ramo è una copia di un sottoinsieme del vostro progetto su cui lavorate separatamente dal tronco. Forse è per esperimenti che potrebbero non andare da nessuna parte, o forse è per il prossimo rilascio, che poi si fonderà di nuovo nel tronco quando diventerà stabile.
E la cartella tags è per la creazione di copie con tag del tuo repository, di solito ai punti di controllo del rilascio.
Ma come ho detto, per SVN, una cartella è una cartella. branch
, trunk
e tag sono solo una convenzione.
Sto usando la parola 'copia'liberamente. SVN in realtà non fa copie complete delle cose nel repository.
La directory trunk è la directory che probabilmente ti è più familiare, perché è usata per contenere le modifiche più recenti. La tua base di codice principale dovrebbe essere in trunk.
La directory branches serve a contenere i vostri rami, qualunque essi siano.
La directory tags è fondamentalmente per etichettare un certo insieme di file. Lo fai per cose come i rilasci, dove vuoi che "1.0" sia questi file a queste revisioni e "1.1" sia questi file a queste revisioni. Di solito non si modificano i tag una volta che sono stati creati. Per maggiori informazioni sui tag, vedi Capitolo 4. Branching e Merging (in Version Control with Subversion).