Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introduo
Para projetos de software com um grande nmero de arquivos e desenvolvedores trabalhando com conjunto, torna-se necessria uma forma eficiente de controlar as alteraes feitas por cada um. O controle de verso uma ferramenta que d suporte ao trabalho paralelo e organizado. Hoje, o Subversion, tambm conhecido como SVN, tem se destacado entre os sistemas que permitem fazer o controle do cdigo fonte do projeto. Outro ponto importante refere-se documentao do software, sem a qual o aproveitamento posterior do cdigo ou mesmo o seu entendimento durante a fase de desenvolvimento fica prejudicado. O Doxygen uma ferramenta que automatiza o processo de documentao, sendo esta feita a partir dos comentrios presentes no cdigo fonte. Neste documento, mostraremos como integrar ferramentas para o controle de verso e a criao automatizada de documentao usando o Eclipse, uma SDK que traz muitos recursos para agilizar o desenvolvimento de software. O Eclipse conhecido por permitir melhorar seu desempenho atravs dos chamados plugins: ferramentas que so adicionadas ao programa pelo usurio a fim de otimizar uma tarefa. Existem muitos desses plugins, e no nosso caso, usaremos dois deles que fazem a integrao do Eclipse com o SVN e o Doxygen, o Subclipse e o Eclox, respectivamente.
2. Pr-Requisitos:
Eclipse 3.x ou superior http://www.eclipse.org/downloads/ Uma conta em um repositrio SVN; Como Google Code (http://code.google.com) ou Source Forge (http://sourceforge.net/) Doxygen 1.5 ou superior. http://www.stack.nl/~dimitri/doxygen/
3. Subclipse
Instalao
A maneira mais fcil de instalar o Subclipse usando o gerenciador de atualizaes do prprio Eclipse. Para isso, v em Help Software Updates Find and Install. Ento, ir iniciar um assistente onde voc pode configurar a fonte das atualizaes. Basta agora incluir o servidor do Subclipse clicando em New Remote Site e inserindo os seguintes dados:
Agora, precisamos conectar ao um repositrio. Para isso, d um clique com o boto direito na janela do SVN e escolha New > Repository Location. Entre com o local do repositrio e ele ir fazer a conexo (Figura 3). Uma vez conectado ao repositrio, precisamos fazer um checkout dos arquivos nele contidos. Com isso, podemos criar um novo projeto do Eclipse que ter o cdigo fonte da nossa aplicao. De um clique direito no nome do repositorio no SVN Explorer e ento selecione Checkout (Figura 4). Na janela seguinte, diga se voc quer fazer o chockout criando um novo projeto com um assistente que j configura as opes do mesmo, ou apenas criar o projeto. Tambm possivel escolher se o checkout ser da ultima reviso (head) ou de uma outra especfica (Figura 5). Usando o New Project Wizard para criar o projeto iremos definir o tipo do projeto, o seu nome e o diretrio onde ser armazenado no disco, e tambm opes como compilao e a indexao do Eclipse, quando for o caso (Figura 6). Aps estes passos, o Eclipse ir fazer o download da cpia de trabalho a partir do repositrio (o que pode demorar um pouco dependendo do tamanho do projeto). Feito isso, o projeto est pronto para o trabalho. O prximo passo ser mostrar como enviar as alteraes locais para o repositrio (commit) e receber as mudanas a partir deste (update).
Fazendo Commits
O processo de atualizar o repositrio com as alteraes locais chamado de commit. A cada commit criada uma nova reviso do projeto no repositrio, e o SVN permite vizualizar as diversas revises e mesmo reverter as alteraes para uma reviso especfica. Voc pode indentificar quais arquivos na sua cpia de trabalho foram alterados observando os cones no painel lateral que exibe os projetos. Os arquivos alterados tem uma pequena estrela preta. Ao lado do nome do arquivo aparece o nmero da reviso qual ele pertence, quem fez a reviso e a data/hora da mesma. Fazer um commit usando o Subclipse extremamente simples, basta clicar no aquivo com o boto direito e escolhe a opo Team > Commit (Figura 7). Ir abrir uma janela onde voc escolhe quais arquivos sero enviados e digita uma mensagem para poder indentificar quais alteraes foram feitas (Figura 8). Esta mensagem de log de grande ajuda em situaes onde queremos verificar como era o cdigo e, caso seja preciso revert-lo para uma determinda reviso torna-se fcil de identificar qual deve ser. Por isso, os comentrios devem ser significativos, no bastando apenas algo como Mudanas no main, ou parecido. Muitas vezes logs bem feitos so a diferena entre uma alterao rpida ou muito tempo perdido procurando por uma reviso. Aps confirmar o commit, verifique no painel Console se tudo correu bem (Figura 9). Um caso em que ele no seria concludo se os arquivos enviados fossem de uma reviso anterior a mais recente no repositrio ou h um conflito entre edies de dois usurios.
Updates
Para atualizar os arquivos locais com as alteraes existentes no repositrio, preciso fazer o que chamamos de update. Basta clicar com o boto direito no arquivo que deseja-se atualizar (ou no projeto todo, se for o caso) e escolher o menu Team > Update. Alguns segundos para a sincronizao e temos a cpia de trabalho atualizada. Caso hajam alteraes locais, o SVN ir mescl-las atualizao. Se ouver algum conflito, ou seja, uma mesma regio do cdigo com duas verses diferentes, ser informada no painel do console e ser preciso resolver o conflito (veja a seo Conflitos). possvel fazer uma atualizao para qualquer verso do projeto, no s para a ltima. Isso util quando se deseja reverter alteraes que no deram certo. Para isso, d um clique direito no arquivo (o o projeto) que deseja reverter e selecione Replace With > Revision (Figura10). Ir abrir um editor com a lista de revises onde o arquivo foi alterado e ao selecionar uma delas, podemos ver as diferenas entre selecionada e a atual (Figura 13). Para reverter para uma verso de um clique com o boto direito e selecione Get Revision (Figura 11). possvel tambm mesclar o arquivo com as verso antiga sem ter q reverter ela. Basta um clique direito na reviso e selecionar Get Contents (Figura 12).
Histrico
Uma maneira de vizualizar todas as revies de um arquivo, ou mesmo do projeto todo, usando a janela History, acessvel atravs de menu de contexto sobre o nome do arquivo (Figura 14). Nela, podemos ver, a cada reviso, quais os arquivos que foram modificados e compar-los de forma mais eficiente, selecionando duas revises e escolhendo a opo Compare, do menu de contexto. Uma janela do Editor se abrir com as diferenas no cdigo e tambm com as diferenas em relao as funes presentes em cada reviso (Figura 16), mostrando tanto as funes que foram adicionadas de uma reviso para outra, como as diferenas entre as revises de uma mesma funo.
Conflitos
Ao fazer um commit, pode ser que a sua cpia de trabalho esteja desatualizada. Neste caso, h a chance de dois usurios terem alterado a mesma parte do cdigo. Surgir ento um conflito, e o SVN ir salvar na pasta local trs arquivos com o nome do arquivo com conflito e com extenses que indicam a verso a qual pertencem e no arquivo principal sero inseridos marcadores que indicam onde est o conflito. Para resolver o conflito, basta dar um clique com o boto direito no nome do arquivo e escolher Team > Edit Conflicts. Ira ento aparecer uma janela de editor com dois painis. No primeiro, tem a verso locar e no segundo a verso do servidor SVN. Atravs dela, possivel escolher entres os trechos do cdigo de cada painl (Figura 17).
Aps teminar a edio, basta clicar novamente com o boto diteito no nome do arquivo e escolher a opo Team > Mark Resolved e o arquivo estar pronto para um commit que agora dar certo.
Annotations
Anotations so uma maneira de saber quem editou que parte do cdigo. Atravs desse recurso, podese ver quais partes de um arquivo foram editadas por qual usurio e tambm a reviso onde isso ocorreu. Para ver as anotaes em um arquivo, basta dar um clique com o boto direito sobre o nome e acessar Team > Show Annotation (Figura 17). Ser ento exibido um editor com indicaes coloridas junto ao nmero de linhas, no canto esquerdo, onde podemos ver o autor das alteraes e tambm a reviso onde as mesmas foram feitas.
Figuras 18 Annotations
4. Eclox
Instalao
Assim como no caso do Subclipse, mais conveniente usar o gerenciador de atualizaes do Eclipse para fazer a instalao, para isso abrimos o mesmo e incluimos o site http://download.gna.org/eclox/update nas fontes de atualizao (no nome do site podemos por, por exemplo, Eclox). Feito isso, temos uma instalao parecida com a do Subclipse e basta reiniciar o Eclipse para usar os recursos.
Para gerar a documentao clique no boto Build Doxyfile na barra de ferramantas (com um cone em formato de arroba). Caso no o encontre, pode ser que a sua perspecitiva precise ser ajustada pra isso. V em Window > Customize Perspective e marque a opo Doxygen Build (Figura13). Quando gerar a documentao, o console ir exibir os resultados sobre quais elementos no cdigo esto documentados e no painel Problem podem ser exibidos warnings sobre elementos que esto sem documentao (Figuras 14 e 15).
No site do doxygen h um manual [3] de como comentar o cdigo de forma a gerar a documentao automtica, usando as tags especiais da linguagem. Para entender melhor os conceitos do Subversion, como branches, tags e revisions, veja [4]. Na ajuda do Subclipse, podem ser encontrados tambm mais informaes sobre o plugin e tambm sobre o prprio SVN.
Autores
Henrique Baggio Claudio Neto Victor Carmona
Referncias
[1] Instalando o Subclipse Disponvel em: [http://subclipse.tigris.org/install.html] [2] Eclipse Help - Installing new features with the update manager Disponvel em [http://help.eclipse.org/help31/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-34.htm] [3] Doxygen - Documenting the code Disponpivel em [http://www.stack.nl/~dimitri/doxygen/manual.html] [4] Controle de verso com Subversion Disponivel em [http://svnbook.red-bean.com/]