2010-03-07 5 views
6

Utilizzando Subversion, nella mia copia di lavoro ho fare una piccola modifica (aggiornare un numero di versione). Vorrei quindi taggare la mia copia di lavoro. Questo tag sarebbe ancora una copia economica con la modifica o SVN duplicherà i file? Mi dispiacerebbe vedere il mio repository crescere enormemente nelle dimensioni perché sto cercando di salvare una modifica del numero di versione.SVN - Quando si contrassegna una copia di lavoro è ancora una copia economica?

Il motivo che mi chiedo di creare un tag che contiene una modifica piuttosto che commettere poi codifica comporta la mia build server. Il build server crea una CCNetLabel che uso per aggiornare i numeri di versione dei miei progetti (AssemblyInfo.cs). Quando la compilazione ha successo crea un tag. Quando uso ForceBuild il tag è basato sulla copia di lavoro che conterrebbe il numero di versione modificato. Voglio che il tag contenga il numero di versione appropriato.

nota: E 'discutibile se sto creando una filiale o un tag, tuttavia SVN non fa una distinzione tra i due.

risposta

4

Dipende. Se la tua copia di lavoro è aggiornata (tutti i nodi hanno la stessa revisione) è economica quanto tagging dal repository.

Per ogni file/directory (o in realtà sottostruttura) con una revisione diversa da quella principale, verranno aggiunti dati aggiuntivi. E se hai modifiche locali, verranno aggiunti ancora più dati.

Ma è ancora ragionevole a buon mercato: non duplica alcun file già presente nel repository.

+0

Eccellente, la mia preoccupazione era che potesse duplicare tutti i file. Sembra che taggare la copia di lavoro sarebbe a malapena più grande della codifica di un ramo sul server. Ora se potessi dire a Cruise Control .net di taggare sempre la mia copia di lavoro .... http://groups.google.com/group/ccnet-devel/browse_thread/thread/13e5cc63cb9221ae – mcdon

+0

se ho una directory "A" in la mia copia di lavoro e la taggato. Capisco che questa sarà una copia economica nel repository. Tuttavia, in seguito cancellerò "A" dalla mia directory di lavoro. Cosa succederà alla copia economica? Avrà ancora "A" disponibile? – Jus12

1

Creazione di un tag o un ramo in Subversion è molto a buon mercato. I file non verranno copiati. Tutto ciò che accade è che verrà creata una nuova revisione, il cui contenuto in pratica contiene solo un puntatore a dove è stato copiato il tag. Questa sarà la stessa dimensione per un tag di un progetto con un file piccolo o per uno con un milione di file grandi.

Quando si dice "tag mia copia di lavoro", vuol dire "tag mio ramo di lavoro"? È possibile contrassegnare solo i dati che sono già stati trasferiti nel repository da qualche parte, non le modifiche locali non salvate.

+0

io intendo codici nei miei copia di lavoro. Il processo sarà: svn update, aggiornare il numero di versione nella copia di lavoro, generare tag dalla copia di lavoro. L'obiettivo è salvare le informazioni sulla versione aggiornata nel tag (ramo più una modifica per il numero di versione). – mcdon

5

Dalla descrizione sovvertimento

  • rami e tag sono economiche operazioni (costante di tempo). Non c'è motivo per queste operazioni siano costose, quindi non lo sono. rami e tag sono entrambi implementati in termini di un'operazione sottostante "copia". Una copia occupa una piccola quantità costante di spazio. Qualsiasi copia è un tag; e se inizi a impegnarti su una copia, allora è anche un ramo. (Questo elimina "branch-point di tagging" del CVS, eliminando la distinzione che ha fatto i tag ramo punti necessari, in primo luogo.)

Nota! Ho appena notato che Subversion è stato spostato nella organizzazione del progetto Apache

1

Abbastanza un post obsoleto, ma che vale la pena menzionare per chiunque visiti che la risposta affermando che si può solo 'È possibile taggare solo i dati che sono già stati commessi nel repository ...' il lavoro impegnato non è completamente accurato (almeno non adesso).

È possibile contrassegnare una copia di lavoro, che potrebbe contenere revisioni miste e persino directory commutate nonché modifiche locali.

Per quanto riguarda l'economicità, sì, dovrebbe essere ancora a buon mercato come Subversion diramano per voi, quindi sovrapporre i tuoi lavoro modifiche copia nella repo, risparmiando quanto più spazio possibile