Você está na página 1de 13

Grupo de Usurios Java

http://www.guj.com.br

Utilizando subversion como controle de verso


Heitor Rapcinski
Este documento descrever a utilizao de subversion como ferramenta de controle de verso mostrando as facilidades da sua utilizao para administrar alteraes em qualquer tipo de documento. Ser mostrada a sua instalao em um servidor Windows e a utilizao no desenvolvimento de aplicaes Java com o Eclipse e com qualquer tipo de documentos utilizando TortoiseSVN.

Introduo
Subversion um controle de verso free/open-source que permite armazenar documentos de qualquer natureza efetuando controle de acesso aos repositrios e mantendo as alteraes atravs de um controle de revises. Subversion pode ser usado para controlar alterao de diversos tipos de documentos, mas no momento estaremos voltados a demonstrar a sua utilizao para melhorar o trabalho de desenvolvimento de software em equipes. Utilizaremos nos exemplos o Eclipse com um plug-in chamado subclipse que pode ser encontrado atravs dos links apresentados abaixo.

Links:
Subversion http://subversion.tigris.org/ TortoiseSVN http://tortoisesvn.tigris.org/ Subclipse http://subclipse.tigris.org/ Eclipse http://www.eclipse.org/ SVNService http://dark.clansoft.dk/~mbn/svnservice/

Introduo
A arquitetura proposta pelo subversion semelhante a um cliente-servidor, no servidor temos os repositrio dos arquivos que so armazenados em um banco de dados e diversos clientes que so utilizados para acessar os documentos.

Os documentos so recuperados do repositrio e armazenados localmente, aps os documentos serem alterados pode-se submet-los ao servidor, essa atividade altera o nmero da reviso do repositrio. O nmero de reviso seqencial iniciando em 1 e incrementada a cada alterao dos documentos. Cada documento tem armazenado no repositrio sua ltima situao e a situao em cada uma das revises, desta forma podemos reverter qualquer alterao, podemos comparar o documento em com uma reviso especfica. Atravs do subversion podemos administrar melhor as alteraes nos documentos com diversos recursos que essa ferramenta oferece. Todo o contedo do repositrio fica registrado, assim podemos saber em que reviso o documento foi alterado, quem alterou. Fica armazenada no repositrio a situao do documento em cada uma das revises. Cada reviso possui a data, hora e usurio que a efetuou. O acesso ao repositrio pode ser annimo ou atravs de um usurio autorizado, definido para cada repositrio um conjunto de usurios e senhas que tem acesso.

Grupo de Usurios Java http://www.guj.com.br Pgina 1

Grupo de Usurios Java


http://www.guj.com.br

Podemos liberar impedir ou definir como somente de leitura tanto o acesso annimo quanto o acesso atravs de usurio e senha. O Subversion pode ser acoplado ao Apache e desta forma ficar disponvel pela internet e at mesmo utilizar um protocolo seguro para o acesso aos documentos (https).

Instalao
Para instalar o servidor de subversion no Windows basta fazer o download do arquivo atravs do link e descompacta-lo em um diretrio. A partir do diretrio <diretoriodeinstalacao>\bin podemos executar iniciar o servidor de subversion. Atravs da linha de comando a seguir estaremos iniciando o servidor e definindo o diretrio dos nossos repositrios para a pasta c:\repositoriosvn.
svnserve d r c:\repositoriosvn

Com o nosso servidor rodando devemos criar um repositrio para armazenar os documentos, faremos isso atravs do comando svnadmin, criaremos ento o repositrio aplicacao-java em c:\repositoriosvn\aplicacao-java.
svnadmin create c:\repositoriosvn\aplicacao-java

Devemos observar que os repositrios podem ser criados em qualquer pasta que esteja vazia, mas apenas podero ser acessados os repositrios criados a partir do repositrio principal definido atravs do comando svnserve. O comando svnadmin cria a estrutura bsica do repositrio que armazenar todos os dados. Aps a criao da estrutura inicial do repositrio devemos editar o arquivo svnserver.conf que estar na pasta \conf do nosso repositrio, seguindo nosso exemplo encontraremos esse arquivo na pasta c:\repositoriosvn\aplicacao-java\conf. O contedo padro do arquivo ser:
Grupo de Usurios Java http://www.guj.com.br Pgina 2

Grupo de Usurios Java


http://www.guj.com.br

### ### ### ###

This file controls the configuration of the svnserve daemon, if you use it to allow access to this repository. (If you only allow access through http: and/or file: URLs, then this file is irrelevant.)

### Visit http://subversion.tigris.org/ for more information. # [general] ### These options control access to the repository for unauthenticated ### and authenticated users. Valid values are "write", "read", ### and "none". The sample settings below are the defaults. # anon-access = read # auth-access = write ### The password-db option controls the location of the password ### database file. Unless you specify a path starting with a /, ### the file's location is relative to the conf directory. ### The format of the password database is similar to this file. ### It contains one section labelled [users]. The name and ### password for each user follow, one account per line. The ### format is ### USERNAME = PASSWORD ### Please note that both the user name and password are case ### sensitive. There is no default for the password file. # password-db = passwd ### This option specifies the authentication realm of the repository. ### If two repositories have the same authentication realm, they should ### have the same password database, and vice versa. The default realm ### is repository's uuid. # realm = My First Repository

Para o nosso exemplo vamos modificar o contedo do arquivo para:


[general] anon-access = read auth-access = write password-db = passwd

O termo anon-acess define como ser o acesso annimo ao repositrio, podemos definir como none, read ou write para impedir o acesso annimo, permitir somente leitura ou permitir para leitura e gravao respectivamente. O termo auth-acess define como poder ser o acesso para usurios autorizados e pode ser definido com os mesmos valores none, read ou write. O termo password-db define o nome do arquivo contendo a lista de usurio e senha autorizados no repositrio, no exemplo deveremos ter um arquivo chamado passwd a seguir um exemplo de um arquivo de senhas:
[users] joao = 123 maria = abc

No nosso exemplo teremos um repositrio que permite leitura dos documentos atravs de um acesso annimo e leitura e gravao para os usurios autenticados. O acesso autorizado pode ser feito pelos usurios joo e maria atravs da senha 123 e abc respectivamente, importante que tanto usurio como senha so case sensitive. Vrios outros parmetros podem ser adotados para melhorar a segurana do repositrio, mas no trataremos disso agora.

Configurando o snvserve como servio do windows


O servidor de subversion j est funcionando, enquanto o comando svnserve estiver em execuo o servidor estar no ar, mas em se tratando de um servidor Windows qualquer ao que feche o prompt de comando far com que o servio seja interrompido. Para resolver esse incomodo podemos utilizar o SVNService, que pode ser conseguido atravs do link relacionado no inicio deste artigo. O SVNService registra o svnserve na lista de servios do Windows. Basta descompactar o contedo do arquivo e copiar os arquivos para o diretrio \bin do subversion. Para instalar o subversion como servio:
svnservice install d r c:\repositoriosvn

Atravs do comando anterior colocaremos o svnserve rodando como um servio do windows, podemos ento controla-lo atravs do gerenciador de servios do windows.

Grupo de Usurios Java http://www.guj.com.br Pgina 3

Grupo de Usurios Java


http://www.guj.com.br

Podemos editar o tipo de inicializao para automtico e iniciar o servio assim mesmo que o servidor seja reiniciado o servio de subversion ser reativado.

Grupo de Usurios Java http://www.guj.com.br Pgina 4

Grupo de Usurios Java


http://www.guj.com.br

Para remover o servio basta executar o seguinte comando:


svnservice remove

Usando o TortoiseSVN
O TortoiseSVN um cliente para subversion que permite acessar um repositrio integrando os documentos diretamente no Windows Explorer. Faa download a partir do link e faa a instalao, aps a instalao aparecer no menu de contexto de qualquer pasta as opes do TortoiseSVN.

Ento basta criar uma pasta e executar um SVN Checkout que vai fazer com que os documentos do repositrio seja trazidos para a sua pasta local. Utilizaremos o repositrio aplicao-java criado nos exemplos anteriores. Veja que utilizaremos o svn://localhost/aplicacao-java como URL, isso vai variar de acordo com sua configurao de servidor e arquitetura de instalao do subversion. No checkout podemos escolher a reviso ou utilizar HEAD para que seja trazida a reviso mais atual do repositrio.

De acordo com a configurao do repositrio ser solicitado um usurio e senha mesmo para a leitura dos documentos, isso depender com a configurao do arquivo svnserve.conf. Aps o checkout ser exibida a tela com o resumos dos documentos trazidos no checkout.
Grupo de Usurios Java http://www.guj.com.br Pgina 5

Grupo de Usurios Java


http://www.guj.com.br

Aps ter feito checkout de um repositrio para uma pasta, sempre que for acessado o menu de contexto dentro da pasta aparecero todas as operaes que poderemos realizar no repositrio. As duas principais funes so: SVN Commit que grava todos os dados da pasta local para o repositrio e SVN Update que traz os documentos do repositrio para a pasta local.

Instalando o Subclipse no Eclipse


O Subclipse um plug-in que instalado no Eclipse que permite realizar todas as funcionalidades do subversion atravs do Eclipse. Para instalar o plug-in no Eclipse faa o seguinte procedimento:

Grupo de Usurios Java http://www.guj.com.br Pgina 6

Grupo de Usurios Java


http://www.guj.com.br

Entre na Opo Help->Software Updates->Find and Install

Selecione Search for new features to install

Clique em New Remote Site

Grupo de Usurios Java http://www.guj.com.br Pgina 7

Grupo de Usurios Java


http://www.guj.com.br

Preencha com os dados do site

Selecione Subclipse e clique em Finish

Selecione Subclipse e clique em Next

Grupo de Usurios Java http://www.guj.com.br Pgina 8

Grupo de Usurios Java


http://www.guj.com.br

Coloque em I accept... e clique em Next

clique em Finish

Aguarde o download

Grupo de Usurios Java http://www.guj.com.br Pgina 9

Grupo de Usurios Java


http://www.guj.com.br

Clique em Install All

Usando o Subclipse
Com o subclipse instalado no Eclipse podemos definir a conexo com o nosso servidor, vamos utilizar o mesmo exemplo citado anteriormente. No Eclipse seleciona a perspectiva SVN Repository Explorer.

Selecione a Perspectiva SVN Repository Explorer

Clique em Add SVN Repository

Grupo de Usurios Java http://www.guj.com.br Pgina 10

Grupo de Usurios Java


http://www.guj.com.br

Preencha com os dados do Repositrio

Agora criamos no Eclipse uma conexo para o nosso repositrio, agora basta criar um projeto no Eclipse e compartilha-lo atravs do subclipse. Faa a criao de um projeto qualquer, clique com o boto direito nele e execute Team->Share Project... siga os passos selecionando o repositrio.

Aps terminar o processo de compartilhamento do seu projeto o Eclipse indicar o processo de sincronizao entre o seu projeto local e o repositrio. A perspectiva Synchronize facilita o processo, so mostrados todos os documento que sero adicionado no repositrio e atravs do menu de contexto possvel confirmar o envio dos documentos para o repositrio.

Grupo de Usurios Java http://www.guj.com.br Pgina 11

Grupo de Usurios Java


http://www.guj.com.br

Quando executado o comando commit o usurio pode definir quais arquivos sero enviados e tambm preencher um campo com os comentrio sobre a atualizao.

Depois que for realizado a sincronizao com o repositrio o Eclipse estar fazendo sempre um controle das alteraes do projeto e atravs da opo Team possvel realizar todas as operaes de subversion entre o Eclipse e o repositrio. O Eclipse far com que os cones de cada arquivo do seu projeto fique decorado de tal forma que seja possvel identificar a data e hora, usurio e reviso do arquivo no repositrio.

Grupo de Usurios Java http://www.guj.com.br Pgina 12

Grupo de Usurios Java


http://www.guj.com.br

Concluso
Subversion uma tima ferramenta para administrao de projetos com uma equipe de desenvolvedores, demonstramos nesse artigo um passo inicial para instalar e trabalhar no Eclipse com Java ou com qualquer outro tipo de documento.
Heitor Rapcinski (heitorr@yahoo.com, heitor_10@hotmail.com).

Grupo de Usurios Java http://www.guj.com.br Pgina 13

Você também pode gostar