Escolar Documentos
Profissional Documentos
Cultura Documentos
http://www.guj.com.br
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.
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
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
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.
Atravs do comando anterior colocaremos o svnserve rodando como um servio do windows, podemos ento controla-lo atravs do gerenciador de servios do windows.
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.
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
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.
clique em Finish
Aguarde o download
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.
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.
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.
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).