Introdução

Este tutorial vai ensinar a usar o Subversion (svn) localmente para fazer controle de versão no código, ou seja, como setar um repositório local do Subversion sem usar Apache. De lambuja seguem também alguns comandos muito interessantes para o seu dia-a-dia.

Seguir um tutorial como este ajudará a entender como usar controle de versão nos seus projetos particulares, e ainda permitir que você se familiarize com o Subversion usado em outros projetos, como por exemplo no projeto Gnome.

De maneira alguma pretende-se cobrir todos os aspectos desta excelente ferramenta. E foi pensando nisso que decidimos compartilhar no final do tutorial algumas das melhores referências sobre Subversion. Considere este tutorial seu ponto de partida, em seguida leia o que recomendamos.

Esperamos que este texto seja útil no seu aprendizado. Boa Leitura! :-)

Instalando Subversion no Ubuntu

Para instalar os pacotes do Subversion no ubuntu, independente da versão, utilize o comando a seguir:

sudo aptitude install subversion subversion-tools subversion-helper-scripts

Quando chegar o momento, entre com a senha do super-usuário, requerida pelo comando sudo.

Criando o Repositório

Para começar, vamos escolher o local onde você vai criar seu repositório. Como sugestão vamos escolhe dentro de /var/local e depois alterar o diretório para pertencer ao seu usuário/grupo, assim você poderá fazer commit sem precisar do sudo, do contrário você não terá permissão de escrita no repositório:

sudo svnadmin create myProject
sudo chown -R myUser:myUser myProject

Substitua myProject por um nome que desejar, e substitua myUser pelo nome do seu usuário (no ubuntu, seu usuário tem um grupo próprio).

Agora vamos criar a infrastrutura recomendada no svn-book para projetos, que deverá ser algo como:

|– MyProject
   |– branches
   | # Somente para desenvolvimentos experimentais, onde você poderá usar
   | # para trabalhar em uma nova feature e depois fazer um merge dela com o
   | # mainline trunk
   |– tags
   | # Onde armazenamos snapshots da data do Release de uma dada versão,
   | # cada snapshot será uma tag no diretório tags com nome dado por você.
      |– ver005
      |– ver010
      |– ver015
   |– trunk
     # É no trunk que as coisas acontecem. Quase todos os commit seus iram
     # para esse diretório, portanto certifique-se de só fazer commit
     # quando o código estiver pronto, testado e sem erros.

Para criar os diretórios acima vamos usar o comando mkdir do svn, como abaixo:

svn mkdir file:///var/local/MyProject/branches
svn mkdir file:///var/local/MyProject/tags
svn mkdir file:///var/local/MyProject/trunk

Chegou o momento de importar para o trunk do seu novo repositório aquele seu diretório antigo que você queira versionar, vá até o diretório e utilize o comando import do svn:

svn import . file:///var/local/MyProject/trunk

Se você fez tudo como acima, chegou a hora então de fazer chekout no seu home e ter uma pasta de trabalho para recomeçar o desenvolvimento:

svn co file:///var/local/MyProject/ ~/MyProject

Pronto, agora é só trabalhar no código dentro do diretório ~/MyProject/trunk e lembrar de sempre fazer commit no final das atividades. A seguir apresento dicas de comandos legais do Subversion.

Comandos do Subversion

Para ver o status da sua cópia local comparando com o status do servidor, use:

svn status -u

Mantendo sua cópia local sincronizada com o servidor, use:

svn update

Para commitar atualizações, use:

svn commit

Para ver o log de cada um dos arquivos, ordenando cronologicamente, use:

svn log | tac

E para ver o log de somente um arquivo específico, utilize:

svn log file_name | tac

Para ver a diferença entre um dado arquivo em uma dada revisão e o estado atual do seu arquivo no repositório, use:

svn diff -r revision_number file_name

Para ver a diferença entre revisões de seeu arquivo no repositório, use:

svn diff -r revision_number_1:revision_number_2 file_name

Para reverter o estado de um arquivo de cópia local para uma dada revisão, use (ou use -R para um diretório):

svn revert file
svn revert -R directory

Para criar uma nova tag ou uma branch experimental, use:

svn copy src_dir tag_dir

Para consultar o help de qualquer comando, use:

svn help command

Conclusão e bibliografia recomendada

Este tutorial não tinha a intenção de cobrir todos os tópicos de Subversion, mas sim introduzí-lo aos aspectos fundamentais, assim você poderá seguir sozinho seus estudos sobre versionamento. Uma série de Websites na internet podem levá-lo a ter as mais diversas experiências com o svn. Divirta-se com os links a seguir:

Créditos

Autor: CarlosCosta

Data: 29/02/08

Local: CarlosCosta.org

Wikifier: CarlosCosta

Data: 18/03/08

Mantenedor: CarlosCosta

Time de Documentação do Ubuntu Brasil

Subversion (last edited 2008-04-25 23:29:00 by CarlosCosta)