Dicas para usar o Subversion (SVN) no Linux
Dicas.
Introdução
O Subversion [1], também conhecido como SVN, é um sistema de controle de versões open-source. Estas dicas são destinadas a quem já é usuário do programa no Linux. São técnicas simples que eu uso para facilitar a minha vida.
Filtrando arquivos indesejáveis
O comando svn status mostra os arquivos alterados na sua cópia de trabalho. Porém, alguns arquivos que não estão sob o controle de versões (e nem deveriam estar), como os .pyc (bytecodes do Python) e .class (bytecodes do Java), aparecem na listagem. A solução que eu adotei foi criar o script svn_status.sh para usar no lugar do comando "svn status". Eis a listagem do script que filtra esses dois tipos de arquivos:
#!/bin/bash svn status | grep -v "\.\(pyc\|class\)"
Altere o script de acordo com suas necessidades e o coloque em algum diretório que esteja no seu PATH.
Acompanhando alterações feitas por outras pessoas
Esse script mostra o log das alterações feitas no repositório mas que não estão na sua cópia de trabalho ainda. Em outras palavras, são as alterações que serão aplicadas à cópia local quando você executar um "svn update". O script é útil para acompanhar alterações feitas por outras pessoas. Listagem:
#!/bin/bash svn log -v -rBASE:HEAD
Altere o script de acordo com suas necessidades e o coloque em algum diretório que esteja no seu PATH.
Visualizando diferenças graficamente
O comando svn diff mostra as diferenças entre duas revisões, no formato do programa diff do Unix. O Kompare [2] permite visualizar diferenças entre arquivos e diretórios em uma interface gráfica, e trabalha também com o formato do diff. Para visualizar a saída do comando svn diff no kompare basta fazer:
svn diff | kompare -
Nesse caso serão mostradas as alterações locais na cópia de trabalho. O svn diff aceita outras opções para definir o que deve ser comparado.
Definindo um editor para a mensagem de commit
É possível definir um editor que será invocado automaticamente ao executar um svn commit, para editar a mensagem de commit. Assim você não precisa especificar a mensagem diretamente na linha de comando (opção -m), ficando mais fácil escrever mensagens com mais de uma linha.
Edite o arquivo ~/.subversion/config. Descomente as linhas contendo [helpers] e editor-cmd. Edite esta última linha colocando o nome do editor a ser usado (por exemplo: vi ou nano).
Scripts no site do Subversion
Existem alguns scripts prontos no site do Subversion (Client-side [3] e Server-side [4]) que são muito úteis. Eu destaco:
- showchange.pl: Mostra a mensagem de commit e as diferenças (svn diff) entre uma revisão e a revisão anterior. Você pode redirecionar a saída desse comando para o Kompare e visualizar as diferenças graficamente.
- search-svnlog.pl: Faz buscas no log do repositório.
- bash_completion: Faz o bash completar os comandos do Subversion. Por exemplo, digite svn upgr e pressione TAB, o bash completará para svn upgrade.