Uso Básico do Subversion
Índice
Criação de um Repositório
Para criar um repositório no subversion digite os seguintes comandos:
svnadmin create /var/www/svn/nome_do_repositorio chown apache:apache /var/www/svn/nome_do_repositorio -R
Obs.: Somente o administrador do sistema pode criar um repositório.
Para criar um repositório clique no link Contato.
Importando um Repositório para o Subversion
Primeiramente, o repositório deve ser criado e usuário deve ter uma conta no subversion. Para importar um repositório para o Subversvion digite o seguinte comando:
svn import nome_do_repositorio http://www.lcad.inf.ufes.br/svn/nome_do_repositorio/-m "messagem" --username login_do_usuario
Criando uma Cópia de um Repositório na sua Máquina
Para criar uma cópia de um repositório na sua máquina local digite o seguinte comando:
svn co http://www.lcad.inf.ufes.br/svn/nome_do_repositorio/ --username login_do_usuario
Os repositórios disponíveis são: scae, MAE e roteiros.
Comandos Básicos do SVN
Para listar os comandos básicos, use
svn help
Tipicamente você vai precisar dos comandos: svn checkout, svn status, svn update, svn add, svn del, svn commit e svn diff.
Para conhecer mais sobre cada comando, utilize:
svn help [comando]
Realizando merge entre o branch e o trunk
O comando svn merge faz o merge entre dois repositórios, um branch (relato3) e o trunk (SCAE). Esse comando não é propriamente um merge, basicamente ele funciona fazendo o diff entre o branch e o trunk e aplica as diferenças encontradas à cópia de trabalho. Durante esse processo de merge, os arquivos, que foram deletados ou renomeados no branch ou que só existe no trunk e não no branch, serão deletados. Uma maneira de recuperar esses arquivo é por meio do svn copy, conforme explicaremos a seguir.
Para realizar o merge do branch (relato3) para o trunk (SCAE), primeiramente, baixe uma cópia do trunk e do branch do SVN:
svn co http://www.lcad.inf.ufes.br/svn/scae/code svn co http://www.lcad.inf.ufes.br/svn/scae/branchs
Para verificar as mudanças que serão realizadas pelo merge, digite:
cd code svn merge --dry-run http://www.lcad.inf.ufes.br/svn/scae/code http://www.lcad.inf.ufes.br/svn/scae/branchs/relato3
O comando acima ainda não fez o merge, apenas mostrou quais modificações que serão realizadas pelo merge
Para realizar o merge, digite:
cd code svn merge http://www.lcad.inf.ufes.br/svn/scae/code http://www.lcad.inf.ufes.br/svn/scae/branchs/relato3
O comando acima realiza o merge do branch (relato3) para o trunk (SCAE) mostrando na tela do usuário as modicações realizadas. Verifique se o merge deletou algum arquivo do repositório trunk que não deveria ser apagado.
Antes de recuperar os arquivos apagados, o commit deve ser realizado. Para "commitar" as modificações, digite:
svn ci -m "Realizando o merge do relato3 para o SCAE."
A partir da saída do merge, verifique os arquivos ou diretórios que deseja recuperar. Para recuperar um diretório ou arquivo, digite:
cd code/CORES svn copy -r <revisão antes do commit> http://www.lcad.inf.ufes.br/svn/scae/code/CORES/PNN_CORE .
O comando acima é executado para cada arquivo ou diretório apagado pelo merge.
Para finalizar, devemos "commitar" os arquivos ou diretórios recuperados:
svn ci -m "Recuperando os diretórios e os arquivos apagados durante o processo de merge do relato3 para o SCAE."
Referência Completa
Há uma referência on-line completa dos comandos do SVN em:
http://svnbook.red-bean.com/nightly/pt_BR/svn.ref.html
Há também um livro, em pdf, em:
http://svnbook.red-bean.com/
Exemplos Úteis
- Verificando os updates disponíveis:
[flibio@lcad16 DB_CORE]$ svn status -u * 37 db_core.h ? db_core * 37 table_lib.c M 37 ports.cfg * 37 db_core_rpcs.c * 37 db_core.c Status contra revisão: 40