arquivos RCS. Estes arquivos sao criados em toda a arvore de diretorios do projeto para versionar arquivo por arquivo. Possibilita maior poder para recuperar possiveis falhas apenas editando esses arquivos.E feito em banco de dados Berkley DB. Existem aplicativos para a recuperacao de falhas.ConcorrenciaExistem problemas de acesso concorrente por se tratarem de arquivos em disco.Acesso concorrente transacionado pelo banco de dados.VelocidadeMais lento pelo fato de usar file system.Mais rapido. O unico problema de velocidade esta no momento de se conectar ao repositorio e fazer o primeiro checkout, ja que ele traz uma copia local de todos os arquivos.VersionamentoGerencia versoes diferentes para cada arquivo do projeto. Permite a criacao de branchs e tags por arquivo. Nao permite restaurar a versao do projeto a partir de uma tag especifica.Para cada branch ou tag, cria-se uma copia no repositorio e todos os arquivos do projeto ganham um numero identificador de 4 digitos. Ao se configurar um branch, o SVN cria uma tag correspondente no inicio, mas depois que se da o primeiro commit, ele se transforma no branch e o novo versionamento se inicia imediatamente. Permite restaurar a versao do projeto a partir de uma tag especifica.MetadadosNao armazena metadados, somente arquivos.Permite que se vincule e versione tambem atributos relacionados aos arquivos, esses atributos sao configurados na forma de par chave=valor.Tipo de arquivos comportadosBom para armazenamento de arquivos texto. Problema em armazenar binarios. Tambem nao e possivel se fazer diff de binarios.Todos os tipos de arquivo.RollbackPermite, no entanto tem que se faze de arquivo por arquivo.Nao permite, tem que ser fazer copias de versoes em bom estado.Transacoes IntegridadeNao possui a teoria do ou tudo, ou nada pois, quando ha conflitos, os arquivos afetados deixam de serem commitados, sendo que os estao integros(sem conflito) vao para o repositorio mesmo assim.Possui o conceito do ou tudo, ou nada. Assim, os numeros das revisoes sao marcados apenas quando todos os conflitos foram resolvidos e finalmente se da o commit. Permite tambem configurar grupos para commit.Lock de arquivosNao possui.Possui. Se um usuario bloqueia o arquivo, ele fica como somente leitura para os outros.InteroperabilidadeNao possui.Pode se comunicar via Http e ssh.Integracao com o RedMine Possui.Possui.Integracao com o HudsonPossui.Possui.Reparem que ao final da tabela de avaliacao eu cito duas integracoes com outros sistemas: RedMine e Hudson. O RedMine e um sistema de gerencia de projetos que utilizamos na empresa. Ja o Hudson e o sistema de integracao continua open-source mais utilizado do mercado. Estas duas ferramentas se tornam muito valiosas para se fechar o circulo formado pelos componentes necessarios a uma Gestao de Configuracao eficaz. Pretendo abordar algo sobre elas e sobre a teoria em torno da Gerencia de Configuracao e Mudanca em breve!Ok, podemos concluir pela tabela que, o SVN possui uma serie de caracteristicas mais arrojadas que o CVS, mas ainda fica uma pergunta no ar: se a necessidade era tambem a de migrar os dados, como fariamos isto sem que perdessemos todos os dados historicos das tags e branchs criados?Para a ardua tarefa de migracao tambem ja existe uma ferramenta muito difundida: o CV2SVN... Ufa! Esta ferramenta basicamente percorre