Você está na página 1de 4

O Subversion no Gerenciamento de Arquivos, verses1.

Camila Bastos da Silva2, Rafael Sampaio da Silva3, Ricardo Augusto Nunes de Farias4.

Resumo: Este artigo contm algumas contribuies sobre o Subversion. Atravs dele pretende-se conceituar o controle de verso, descrever as caractersticas e as vantagens que esta ferramenta traz ao gerenciamento de verses de softwares e documentos distintos, e exemplificar interfaces grficas para a melhoria da interao entre usurio e aplicativo.

Palavras chave: Controle de Verso, Subversion, Interfaces grficas. 1. Introduo. Durante o desenvolvimento de softwares podem ocorrer vrios problemas, tais como: a sobrescrita de cdigos de programadores distintos, dificuldades no controle de alteraes efetuadas, na recuperao dos cdigos ou mesmo na gerencia de documentos do projeto. Pensando em uma soluo para estes problemas foram criadas ferramentas para apoiar o desenvolvimento, desde documentos que diz respeito ao projeto em si, at a entrega do sistema acordado funcionando. Estas ferramentas tm como base de seu funcionamento o controle de verses. O mesmo facilita o acompanhamento de toda a evoluo do projeto, possibilita que vrios desenvolvedores trabalhem em paralelo sobre os mesmos arquivos sem que um sobrescreva o cdigo de outro e mantm verses diferentes para um mesmo projeto. Neste contexto foi criado o Subversion, seguindo as funcionalidades do aplicativo Concurrent Version System (Sistema de Verses Concorrentes), ou CVS. Desde ento, um srie de benefcios advindos do CVS foram aperfeioados.

2. Referencial Terico Subversion, ou simplesmente SVN, uma ferramenta livre/open-source5 lanada em 2004 que surgiu da tentativa de melhoria de outra ferramenta (CVS) no ano de 2000. Aquela possibilita o controle de verses por meio do gerenciamento de arquivos e diretrios distintos. Permite tambm o controle de cpias, renomeaes e meta-dados. Assim, pode-se manter um histrico das modificaes feitas nos documentos
1

Trabalho desenvolvido como parte da avaliao final da disciplina Engenharia de Software I do curso Bacharelado em Sistemas de Informao na Universidade Catlica de Braslia em outubro de 2011. 2 Aluna de Bacharelado em Sistemas de Informao. 3 Aluno de Bacharelado em Sistemas de Informao. 4 Aluno de Bacharelado em Sistemas de Informao. 5 Segue a licena de software livre nos moldes da licena Apache/BSD que permite livre uso, redistribuio e alterao do cdigo fonte do programa. O cdigo tambm pode ser reaproveitado em projetos proprietrios, se for esse o interesse de algum desenvolvedor.

produzidos ao longo do tempo e verificar posteriormente as verses antigas para eventuais recuperaes de informaes relevantes. Desde seu lanamento vem adquirindo cada vez mais adeptos por sua utilizao. O controle de verso dividido em repositrio e rea de trabalho independente se este feito de modo distribudo ou centralizado6. Este repositrio guarda todo o histrico dos documentos de um projeto, registrando quaisquer alteraes feitas em cada componente que foi versionado. No Subversion o controle de verses funciona de modo centralizado, ou seja, possui um repositrio e vrias reas de trabalho, uma para cada desenvolvedor7, diferentemente do Mercurial e Git que ocorre de maneira distribuda, possuindo vrios repositrios independentes com uma rea de trabalho acoplada. Quem utiliza a ferramenta no tem acesso direto aos arquivos que esto no repositrio, mas sim a uma rea/cpia de trabalho que possui clones exatos dos mesmos, e estes so monitorados para a identificao das mudanas que foram realizadas. A cpia individual e isolada das outras cpias de trabalho. Para que o repositrio e rea de trabalho se comuniquem h duas operaes fundamentais: o commit e o update que, quando utilizados, provm a sincronizao das duas partes. O Commit envia um pacote contendo uma ou mais alteraes feitas na rea de trabalho (origem) ao repositrio (destino). J o Update envia as modificaes contidas no repositrio (origem) para a rea de trabalho (destino). Cada chamada a uma operao commit faz com que o repositrio passe pelo processo de atualizao. Deste modo, o que foi alterado gravado j com as modificaes feitas, com a data e o autor da solicitao. Assim que o programa obtm o histrico de tudo que ocorreu desde o incio de sua utilizao. O SVN e a maioria dos programas que permitem o controle de verso possibilita que vrios desenvolvedores trabalhem em paralelo sobre os mesmos arquivos sem que um sobrescreva o cdigo de outro. Para que isto ocorra h disponvel a operao chamada merge (mesclagem) que sincroniza as atualizaes/modificaes em arquivos semelhantes para gerar uma resultante (um novo arquivo/cdigo-fonte proveniente da utilizao/atualizao de um mesmo arquivo por usurios distintos, cada qual em sua rea de trabalho interligada ao repositrio). Desde o incio do projeto do Subversion as funcionalidades provenientes do CVS foram aprimoradas. Dentre as quais: o CVS no funciona to bem com arquivos binrios e envia somente as diferenas do servidor ao cliente. J o Subversion usa um algoritmo de diferenciao binrio que funciona de modo idntico tanto para arquivos texto quanto para arquivos binrios e envia as diferenas entre cliente/servidor e servidor/cliente sempre que possvel. O SVN construdo usando uma biblioteca de portabilidade chamada de APR (Apache PortableRuntime). Por este motivo o Subversion roda em qualquer sistema operacional no qual o servidor Apache funciona: Windows, Linux, BSD, Mac OS X, Netware e outros. Isto possibilita a compatibilidade entre diferentes IDEs, tornando fcil a integrao com inmeras interfaces grficas, dentre as quais h o TortoiseSVN. Caso o usurio queira controlar as operaes nas pastas ou arquivos h o VisualSVNServer8 Manager, fcil e prtico de ser utilizado, que serve para gerenciar os acessos e dar permisses aos usurios de acordo com a necessidade do administrador do repositrio. Este servidor do SVN permite que os acessos de leitura e gravao e a
6 7

A diferena entre os dois est no modo de como organizam as partes que o compem. Para tal se utiliza da topologia em estrela em que a comunicao entre uma rea de trabalho e outra passa pelo obrigatoriamente pelo repositrio. 8 Tipo de servidor para o SVN que funciona somente em ambiente com Sistema Operacional Windows.

criao de senhas para operaes como commit e update sejam feitam no prprio programa, selecionando os diretrios do repositrio e informando quem e o que poder fazer (leitura e/ou gravao) naquela pasta ou arquivo; ou as configuraes para autorizao dos usurios podem ser migradas daquelas definidas no activedirectory no servidor da rede dos computadores utilizados. Aps as configuraes do servidor do SVN, o repositrio feito e os usurios com as devidas permisses possvel criar a cpia de trabalho na mquina de cada usurio para que ele tenha acesso aos arquivos do repositrio. Para tal o TortoiseSvn, uma interface grfica do SVN para Windows, pode ser utilizado. Este funciona por meio da integrao com o Windows explorer. Deste modo, o usurio pode criar uma pasta em sua mquina no diretrio que quiser e, atravs da indicao da URL correta do repositrio, copiar o mesmo para esta pasta (cpia de trabalho) e a cada modificao dos arquivos e atualizao destes no repositrio e na cpia de trabalho (comandos commit e update) o logon e senha criada para este usurio solicitada. Por meio disto, o histrico de tudo que ocorreu no repositrio com a descrio do arquivo que foi modificado/criado e os usurios que os acessaram fica disponvel para eventuais pesquisas quando necessrio9.

3. Metodologia Aspectos sobre os benefcios do controle de verso e caractersticas do Subversion foram levantados (no que diz respeito ao modo de funcionamento e diferenas bsicas entre o seu progenitor CVS, o Mercurial e Git) e alguns aplicativos foram explorados para adequar melhor maneira de interao que h quando se deseja algo de boa qualidade juntamente com a facilidade de configurao e utilizao. Para tal, foram instalados o servidor Apache, o Subversion 1.4.5 e TortoiseSVN 1.6.16.21511 em um notebook com processador i3, memria de 2GB, 500GB de HD e SO Windows 7 Ultimate . Houve tentativas de configurao do Apache e, sem a obteno de sucesso, o servidor foi substitudo pelo VisualSVNServer e o computador foi colocado em rede juntamente com outro notebook com processador Core 2 Duo, 4 GB de memria, 500 GB de HD, SO Windows 7 Ultimate e TortoiseSVN 1.6.16.21511 tambm instalado. Aps, cpias do repositrio criado por meio do servidor foram feitas nas duas mquinas para testar o funcionamento dos programas.

4. Resultados Com a pesquisa realizada comprovou-se que o subversion, apesar de parecer com o CVS, possui funcionalidades mais aprimoradas do que ele e a diferena bsica entre o funcionamento deste, em contrapartida de ferramentas que seguem o mesmo paradigma de controle de verses, como o Git e Mercurial, pode ser entendida. Com o estudo de caso sobre o funcionamento da Subversion, a tentativa de configurao do servidor apache e a utilizao de ferramentas grficas para melhorar a interao entre usurio e aplicativo, foi constatado que a instalao do programa complexa no que diz respeito configurao do apache para que o mesmo se integre ao SVN e assim funcione corretamente, por isso houve a instalao do VisualSVNServer.
9

Com o tortoiseSVN esta verificao feita por meio do clique com o boto direito do mouse em cima um dos arquivos na cpia de trabalho selecionando a opo exibir log. O programa pedir uma autenticao para a execuo desta operao se tiver um servidor controlando logons e senhas.

O mesmo cria os arquivos de configurao do SVN automaticamente sem precisar utilizar comandos no prompt do windows para configurar as permisses dos usurios (o que deve ser feito se o Apache for utilizado). J o VisualSVNServer tem uma interface grfica que possibilita ao administrador criar os usurios, senhas e setar os diretrios que os mesmos tero acesso para leitura e escrita ou somente leitura. Deste modo, a cpia de trabalho pode ser feita nos computadores que esto na rede, no domnio ou no mesmo grupo do computador que possui o repositrio pai. Com a utilizao do TortoiseSVN possvel acrescentar arquivos no repositrio pai com o comando navegador do repositrio e tambm criar uma cpia do mesmo na mquina que necessitar (para isso deve-se copiar a URL do repositrio pai e indicar ao tortoise a pasta na qual ser feita a cpia de trabalho). As duas ferramentas juntas melhoraram bastante a interao entre o SVN e usurio no que diz respeito praticidade, simplicidade no funcionamento, eficcia e eficincia das funcionalidades advindas do Subversion.

5. Concluso A utilizao do Subversion como uma ferramenta de apoio pode melhorar a qualidade do produto e o processo de desenvolvimento, aprimorar o gerenciamento do projeto, reduzir o retrabalho, aumentar a rapidez e segurana em executar modificaes, registrar, rastrear e controlar as mudanas sofridas pelo projeto durante seu ciclo de vida. Entretanto, um software no traz melhorias por si s, mas encoraja a adoo da prtica correta para aprimorar o processo de desenvolvimento. O ganho de produtividade e qualidade s obtido com treinamento especfico para utilizao completa e correta da ferramenta. Caso contrrio, h apenas o aumento na burocracia do desenvolvimento.

6. Referncias Bibliogrficas

CAMPOS, Augusto. Conhecendo a licena Apache. Disponvel em:<https://www.ibm.com/developerworks/mydeveloperworks/blogs/752a690f-8e934948-b7a3-c060117e8665/entry/conhecendo_a_licenca_apache?lang=en>. Acesso em 10 de outubro de 2011. DIAS, Andre Felipe.Conceitos Bsicos de Controle de Verso de Software Centralizado e Distribudo. Disponvel em: <http://www.pronus.eng.br/artigos_tutoriais/gerencia_configuracao/conceitos_basicos_ controle_versao_centralizado_e_distribuido.php>.Acesso em 05 de outubro de 2011. DIAS, Andre Felipe. Subversion. Disponvel em: <http://www.pronus.eng.br/artigos_tutoriais/gerencia_configuracao/Subversion.php?pag Num=0>. Acesso em 05 de outubro de 2011. RAPCINSKI, Heitor. Utilizando subversion como controle de verso. Disponvel em: < http://www.guj.com.br/content/articles/svn/SubVersion_GUJ.pdf >. Acesso em 06 de outubro de 2011.

Você também pode gostar