2010-06-14 2 views
14

La nostra directory principale contiene circa 100mb di codice e creiamo tag dalla directory principale. Normalmente, questo non è un problema perché un tag non occupa spazio finché non è necessario utilizzarlo per qualcosa. Poiché i rami sono creati dai tag in SVN, come posso creare un ramo da un tag prima di verificare il tag? Sembra che ho bisogno di fare un aggiornamento Tortoise da Windows Explorer per scaricare il tag sul mio computer locale prima che io possa usare Tortoise> Branch/Tag ... per creare un ramo da esso. Questo sembra illogico dal momento che non apportiamo modifiche al tag delle cartelle, e richiede il check-out di 100mb di codice, solo per creare un ramo, e quindi un altro 100mb di codice nella cartella branch, dove le modifiche saranno effettivamente fatto.È possibile creare un ramo da un tag in TortoiseSVN senza prima controllare il tag dal server SVN?

Idealmente, sarei in grado di creare un ramo direttamente nel repository tramite RepoBrowser - ma non riesco a vedere un'opzione per questo lì.

Mi manca qualcosa?

risposta

18

La creazione di un ramo consiste semplicemente nel copiare la directory desiderata in un'altra posizione. Questo può essere fatto direttamente nel Repo Browser.

Non c'è nulla di speciale che distingua un ramo da un tag per quanto riguarda Subversion. È solo una convenzione per archiviarli in cartelle madri separate, denominate "filiali" e "tag" di conseguenza.

+1

Grazie per le informazioni - solo quindi sono chiare , stai dicendo che posso continuare a creare tag come faccio normalmente. Per creare un ramo, posso andare in Repo Browser e fare clic destro sulla cartella tag e selezionare Copia in ..., e specificare una nuova cartella sotto rami? Questo ha molto più senso e mantiene tutto una copia shadow sul server finché non sono pronto a controllare il ramo sul mio computer locale per fare un po 'di lavoro. –

+0

Sì, esattamente. Non è però necessario creare solo rami dai tag. Molte persone creeranno un ramo copiando il trunk corrente. Dipende dal tuo flusso di lavoro ... –

+0

Grazie per l'aiuto. –

11

L'unica differenza tra tag e rami è il tuo atteggiamento nei loro confronti - sono equivalenti dietro le quinte - copie shadow create nel repository.

Non hai nemmeno bisogno di una copia di lavoro per creare un ramo/tag. Ad esempio, è possibile utilizzare questo riga di comando:

svn copy http://server/test/trunk http://server/test/branch -m "make branch" 

(presuppone che SVN.EXE oltre a TortoiseSVN, in caso contrario, utilizzare la risposta di Ben)