Convertire un repository da CVS a Subversion

Perhaps the most important way to familiarize CVS users with Subversion is to let them continue to work on their projects using the new system. And while that can be somewhat accomplished using a flat import into a Subversion repository of an exported CVS repository, the more thorough solution involves transferring not just the latest snapshot of their data, but all the history behind it as well, from one system to another. This is an extremely difficult problem to solve that involves deducing changesets in the absence of atomicity, and translating between the systems' completely orthogonal branching policies, among other complications. Still, there are a handful of tools claiming to at least partially support the ability to convert existing CVS repositories into Subversion ones.

Probabilmente il modo più importante per far familiarizzare gli utenti CVS con Subversion è lasciarli continuare a lavorare sui loro progetti utilizzando il nuovo sistema. E mentre questo può essere fatto utilizzando un'importazione netta all'interno del repository di Subversion di un repository esportato di CVS, la soluzione più esauriente implica il trasferimento non solo dell'ultimo snapshot dei loro dati, ma anche di tutta la storia dietro a questo, da un sistema all'altro. Questo è un problema estremamente difficile da risolvere che implica la deduzione di cambiamenti in assenza di atomicità, e la conversione tra le politiche di sistemi di ramificazione completamente ortogonali, in mezzo ad altre complicazioni. Tuttora, ci sono una manciata di strumenti che sostengono almeno parzialmente di supportare l'abilità di convertire repository CVS esistenti in repository di Subversion.

One such tool is cvs2svn (http://cvs2svn.tigris.org/), a Python script originally created by members of Subversion's own development community. Others include Lev Serebryakov's RefineCVS (http://lev.serebryakov.spb.ru/refinecvs/). These tools have various levels of completeness, and may make entirely different decisions about how to handle your CVS repository history. Whichever tool you decide to use, be sure to perform as much verification as you can stand on the conversion results—after all, you've worked hard to build that history!

Uno di questi strumenti è cvs2svn (http://cvs2svn.tigris.org/), uno script Python originariamente creato dai membri della comunità di sviluppo di Subversion. Altri includono RefineCVS di Lev Serebryakov (http://lev.serebryakov.spb.ru/refinecvs/). Questi strumenti hanno vari livelli di completezza, e possono prendere decisioni totalmente differenti su come gestire lo storico del repository CVS. Quale sia lo strumento che si decide di utilizzare, occorre assicurarsi di eseguire il maggior numero possibile di verifiche sui risultati della conversione—dopo tutto, si è lavorato duro per costruire questa storico!

For an updated collection of links to known converter tools, visit the Links page of the Subversion website (http://subversion.tigris.org/project_links.html).

Per una collezione aggiornata di collegamenti a strumenti di conversione conosciuti, visitare la pagina dei collegamenti del sito di Subversion (http://subversion.tigris.org/project_links.html).