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
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.
CVS non ha numeri di revisione globali, sono per file. (In effetti, CVS non ha nemmeno commit atomici)
CVSNT ha comunque dei commit atomici. –
Hmm, grazie per il chiarimento. :) – Rytmis
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.
Quindi è diverso da SVN dove ogni commit modifica il numero di revisione della testata? – Abhi
Sono obbligato a utilizzare CVS :(. – Abhi
"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) . –
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.
- 1. .NET: numeri di revisione grandi in AssemblyVersionAttribute
- 2. Eclipse changelist di CVS
- 3. Ripristino di file dall'archivio di CVS *, v file
- 4. Elenca tutti i file archiviati in un singolo commit cvs
- 5. CVS Ignora directory
- 6. Converti cvs in mercurial
- 7. Libreria Java CVS
- 8. Numero di porta predefinito di CVS
- 9. repository CVS mancanti tipi di connessione
- 10. Configurazione server CVS per Eclipse
- 11. È possibile modificare/riordinare manualmente i numeri di revisione (la topologia fornita rimane la stessa)?
- 12. CVS Diff per emettere solo i file modificati?
- 13. CVS aggiungere directory/errore "non esiste una versione qui; fare` cvs checkout' prima"
- 14. Come utilizzare Assembly Binding Redirection per ignorare la revisione e creare numeri
- 15. Emacs/CVS/OpenSSH: prevenzione password popup
- 16. Come utilizzare la parola chiave numero di revisione globale con TortoiseSVN?
- 17. Rimuovere la directory vuota da CVS?
- 18. Checkout CVS basato solo sui tag
- 19. Qualche ragione per continuare a utilizzare CVS?
- 20. Come ignoro le directory CVS con Git?
- 21. Utilizzare un comando diff diverso con CVS?
- 22. Come ripristinare il file in cvs?
- 23. Checkout CVS ignora i file danneggiati
- 24. Link revisione in-app
- 25. TortoiseHg Revisione Grafico
- 26. revisione vs. versione
- 27. svn: changeset = revisione?
- 28. Comando di revisione di Subversion corrente
- 29. In che modo il sistema di controllo di revisione ripristina la revisione?
- 30. esportazione di patch mercurial rispetto a una vecchia revisione
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
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). –
spiegazione dei numeri CVS: http://www.network-theory.co.uk/docs/cvsmanual/Revisionnumbers.html – SashaN