2009-06-05 14 views
6

Quando eseguo lo stato cvs del mio progetto ottengo diversi numeri di revisione per file diversi. Cosa sta succedendo qui? Non dovrebbero tutti i file avere lo stesso numero di revisione?Numeri di revisione CVS

risposta

9

Il numero di revisione CVS indica quante volte è stato modificato il file. Se vuoi qualcosa di coerente in un progetto, devi usare cvs tag dopo esserti impegnato a dare a tutto un'etichetta coerente.

+1

Provenendo da SVN ha avuto un'esperienza straziante con CVS oggi. Ho dovuto ripristinare il mio progetto in un certo stato. Quindi ho controllato il numero di revisione di uno dei file nel commit che volevo ripristinare e ho provato ad aggiornare il mio progetto a quella revisione usando il comando update -r. Tutto è stato fregato. Poi ho visto l'ora del commit e ho aggiornato il progetto fino a quel momento usando l'aggiornamento -D. È questo il modo migliore per farlo o esiste un altro metodo? – Abhi

+0

Sì, c'è un altro metodo. Si chiama tagging. Se stai usando CVSNT ci sono anche gli ID di commit (auto-generati) e gli ID dei bug (specificati dall'utente). –

+0

spiegazione dei numeri CVS: http://www.network-theory.co.uk/docs/cvsmanual/Revisionnumbers.html – SashaN

1

CVS non ha numeri di revisione globali, sono per file. (In effetti, CVS non ha nemmeno commit atomici)

+1

CVSNT ha comunque dei commit atomici. –

+0

Hmm, grazie per il chiarimento. :) – Rytmis

6

no. cvs non ha un numero di revisione singolo come i più moderni sistemi di controllo delle versioni. Ogni file ha una sua versione separata. Se esiste un modo per passare a un altro sistema di controllo della versione come subversion, mercurial, git ... fallo.

+0

Quindi è diverso da SVN dove ogni commit modifica il numero di revisione della testata? – Abhi

+0

Sono obbligato a utilizzare CVS :(. – Abhi

+2

"La testa" non ha un numero di revisione specifico in CVS.HEAD è solo una sorta di tag virtuale che identifica l'ultima revisione di ogni file sul suo ramo predefinito designato (tipicamente il trunk) . –

1

CVS era in origine un set di script sull'RCS orientato ai file e non è mai sfuggito alla sua cronologia. Un repository CVS è una raccolta di file RCS disposti nella struttura di directory che si desidera quando viene estratto, più alcune directory di blocco. Ricordalo e capirai (e forse sarai in grado di anticipare) un sacco di idiosincrasie CVS. (In seguito VCS ha avuto l'idea di directory incorporate, oltre a cose come la continuità dei file tra i nomi.)

L'idea CVS di uno stato globale è un tag, che deve essere applicato manualmente. Questo viene fatto taggando ogni singolo file RCS. È anche possibile ottenere una copia del repository in un dato momento, ma questo non è necessariamente coerente, in quanto i commit di grandi dimensioni non sono necessariamente atomici.

Quindi, no, la revisione CVS di un file è la revisione RCS nel repository e non ha nulla a che fare con nessun altro numero di revisione. Non sudare i numeri di revisione.

Problemi correlati