Alguns comandos básicos para o manuseio dos arquivos no servidor.
Para colocar os seus arquivos no repositório do servidor, basta importar todos os arquivos que estão em algum diretório com o comando abaixo:
$ svn import /tmp/projeto svn+ssh://nome.seu.servidor/path/completo/do/repositorio -m "Importação arquivos repositório"
Ele pedirá o usuário e a senha para a autenticação.
Para você obter uma cópia do projeto no servidor em seu diretório corrente, utilize o comando abaixo:
$ snv checkout svn+ssh://svn+ssh://nome.seu.servidor/path/completo/do/repositorio .
Após realizado algumas modificações nos arquivos do projeto, você quer submeter suas mudanças, utilize o comando abaixo no diretório local do projeto:
$ svn commit -m 'comentário sobre a mudança'
Para submeter mudanças em um arquivo somente, basta especificar após o commit:
$ svn commit memory.c -m 'comentário sobre a mudança'
Caso ao tentar realizar o commit o subversion falar que sua versão está desatualizada do servidor, basta usar o comando abaixo para realizar um merge entre as suas mudanças com as dos arquivos no servidor:
$ svn update
Após realizado o merge, utilize novamente o comando commit para submeter a sua versão, já atualizada com o servidor, para o repositório.
Para adicionar um novo arquivo editado, utilize:
$ svn add novoarquivo.c
e depois:
$ svn commit -m 'adicionado um arquivo novo'
Para remover faça o mesmo procedimento, só substitua o
add por
rm.
Se caso você queira pegar versões anteriores, para analisar ou utilizar o código, você pode dar um checkout em qualquer revisão do repositório e até mesmo um diff para mostrar as modificações, exemplos:
Pega a quarta revisão do repositório:
$ snv checkout svn+ssh://nome.seu.servidor/path/completo/do/repositorio . -r 4
Mostra a diferença das versões 4 e 3 do repositório:
$ svn diff -r 4:3 svn+ssh://nome.seu.servidor/path/completo/do/repositorio
Temos também a função log, muito útil para verificar as anotações em cada modificação, algumas das formas de ser utilizado esta descrito abaixo.
No repositório que você está modificando:
$ svn log
Em um arquivo específico:
$ svn log foo.c
Em um repositório no servidor:
$ svn log svn+ssh://nome.seu.servidor/path/completo/do/repositorio/foo.c
Em arquivos específicos no repositório do servidor:
$ svn log svn+ssh://nome.seu.servidor/path/completo/do/repositorio foo.c bar.c
Esses comandos acima são, geralmente, os mais utilizados, mas ainda temos alguns que não deixam de ser importantes, tais como:
Cria um diretório no servidor:
$ svn mkdir
Cat, utilizado da mesma maneira que no
Linux:
$ svn cat
Comando parecido com o ls do Linux.
$ svn list
Volta os seus dados com as modificações antigas (no diretório local), boa ferramenta para resolver conflitos:
$ svn revert
Caso pinte qualquer dúvida sobre a utilização de algum comando, basta utilizar "svn help" ou "svn help comando" para ser mais específico.
Também está disponível, livremente, o livro "Version Control with Subversion" no link
http://svnbook.red-bean.com, uma ótima referência para o assunto.
Espero ter dado uma pequena idéia dessa ferramenta tão poderosa. Com esta ferramenta você fica muito mais organizado e te faz salvar horas e mais horas gastas com problemas de não versionamento.
Para quem utiliza o CVS, vale à pena dar uma olhada, ele tem uma sintaxe muito próxima ao mesmo, mas com novas funcionalidades.
É isso!
rsalveti