1. O documento discute o uso do Subversion para controle de versões, descrevendo suas principais funcionalidades e operações como importação, checkout e commit.
2. Detalha a estrutura de projetos no Subversion, divididos em trunk, branches e tags.
3. Apresenta duas políticas de versionamento: Lock-Modify-Unlock e Copy-Modify-Merge, recomendando a primeira para a Pró-Saúde.
1. Frederico F. Siena
Soluções em Sof t w are Liv re
: (43) 9992-8498 : kardeco@y ahoo.com
Subvers on
Controle de versões
Pró-Saúde
Profissionais Associados
Projeto para a implantação de sistema
de controle de versões, que visa o
gerenciamento e controle de projetos
CAD.
Londrina – Julho/2007
2. Licença de Uso
http://creativecommons.org/licenses/disclaimer-popup?lang=pt
http://creativecommons.org/licenses/by-nc-sa/2.5/br/legalcode
3. Sumário
1 Introdução.........................................................................................................................................4
1.1 Estrutura de um projeto SVN....................................................................................................5
2 O que o subversion não é..................................................................................................................6
3 Terminologias...................................................................................................................................7
4 Características...................................................................................................................................8
5 Boas práticas.....................................................................................................................................9
6 Políticas de versionamento............................................................................................................. 10
6.1 Lock-Modify-Unlock (Travar-Modificar-Destravar)............................................................. 11
6.2 Copy-Modify-Merge (Copiar-Modificar-Unir)...................................................................... 12
6.3 Análise.................................................................................................................................... 13
6.4 O padrão do Subversion..........................................................................................................13
7 Ferramenta de gerenciamento.........................................................................................................14
7.1 Interface.................................................................................................................................. 14
8 Ferramenta de manipulação............................................................................................................28
8.1 Instalando as ferramentas........................................................................................................28
8.1.1 Identificando a plataforma.............................................................................................. 29
8.1.2 Instalando........................................................................................................................ 29
8.1.3 Ajustes finais...................................................................................................................30
8.2 Conhecendo a ferramenta....................................................................................................... 31
8.2.1 Ícones de identificação....................................................................................................31
8.2.2 Menus de contexto.......................................................................................................... 32
8.2.3 Criando um novo projeto em um repositório existente...................................................34
8.2.4 Baixando um projeto de um repositório já existente.......................................................35
4. Controle de versões com o Subversion
1 Introdução
Sem entrar em detalhes muito técnicos, o funcionamento do Subversion se dá por meio da
importação dos arquivos de um projeto para um repositório de arquivos, sendo que as demais
operações consistem da transferência de arquivos entre o servidor que abriga o repositório e o
computador cliente. Dessa forma, assim que o projeto for importado (Import – primeira ação após
a criação do projeto), você poderá iniciar a transferência dos arquivos armazenados no repositório
para a área de trabalho (Checkout – segunda ação após a criação do projeto) e realizar as
modificações necessárias. Tão logo essas modificações sejam concluídas, você deverá realizar a
entrega (Commit – submeter os arquivos adicionados) dos arquivos a fim de submeter as
modificações realizadas sob o controle de versões. Você poderá realizar a transferência dos
arquivos armazenados no repositório que foram modificados para a sua área de trabalho. Por último,
você poderá, ainda, exportar (Export – consiste em obter um ou mais arquivos versionados para a
área de trabalho, porém este não mais pertencerá ao projeto) uma liberação de um projeto a ser
entregue ao cliente sem os arquivos e diretórios de controle criados automaticamente pelo
Subversion, como pode ser visto no Desenho 1.
Desenho 1: Principais operações realizadas pelo Subversion
1 Iniciar o processo de versionamento com a importação de um arquivo;
2 Atualiza sua cópia de trabalho com os arquivos do servidor;
3 Realiza modificações na cópia local
3.1 Examina modificações;
3.2 Salva suas modificações no servidor;
4 Sincroniza o trabalho existente no repositório realizado por outros, com o trabalho em sua
área de trabalho;
5 Exportação de um ou mais arquivos para entrega ao cliente.
O sistema de controle de versão rastreia e controla todos os artefatos do projeto e desse
modo consegue coordenar o trabalho paralelo de colaboradores através das seguintes
funcionalidades:
● Mantém e disponibiliza cada versão já produzida de cada item do projeto;
● Possui mecanismos para gerenciar diferentes ramos de desenvolvimento, possibilitando a
Pró-Saúde Profissionais Associados Página 4
5. Controle de versões com o Subversion
existência de diferentes versões ao mesmo tempo;
● Estabelece uma política de sincronização de mudanças que evita a sobreposição de
mudanças;
● Fornece um histórico completo de alterações sobre cada item do projeto.
Todos os arquivos e diretórios que compõem um projeto ficam sob a responsabilidade do
sistema de controle de versão num local denominado de repositório. O repositório registra cada
alteração realizada em cada arquivo e diretório controlado.
À medida que o projeto evolui, o repositório passa a guardar múltiplas versões dos arquivos
que compõem o projeto. Essas múltiplas versões são organizadas em revisões. Uma revisão
funciona como uma "foto" de todos os arquivos do projeto em um determinado momento do tempo.
As "fotos" antigas são mantidas e podem ser recuperadas e analisadas a qualquer momento.
Para economizar espaço, apenas as diferenças entre as revisões costumam ser armazenadas
no repositório. Quando se deseja recuperar determinado arquivo, as diferenças são analisadas e o
arquivo é remontado de acordo com a revisão desejada. Mesmo que não haja alteração em um
arquivo entre uma revisão e outra, o número da revisão do arquivo acompanha o número da revisão
global, de modo a manter sempre um grupo coeso e coerente de arquivos.
1.1 Estrutura de um projeto SVN
/projeto1
/trunk (linha atual de desenvolvimento)
/braches (derivação de versão estável)
/tags (rótulos de identificação)
Pró-Saúde Profissionais Associados Página 5
6. Controle de versões com o Subversion
2 O que o subversion não é
● O Subversion não assume o papel de um coordenador de projeto, líder de equipe ou
qualquer outro cargo de nível gerencial;
● O Subversion é uma ferramenta de apoio ao desenvolvimento, no entanto não é capaz de
realizar o planejamento ou acompanhamento de tarefas;
● O Subversion não é um substituto para a comunicação entre as pessoas;
● O Subversion fornece um mecanismo embutido capaz de identificar e resolver conflitos.
Devemos esclarecer que os conflitos identificados pelo Subversion são meramente
semânticos, ou seja, não existe nenhuma análise da consistência lógica no conteúdo dos
arquivos. Sob essa condição, a comunicação entre as pessoas envolvidas no projeto é
essencial para uma exploração mais criteriosa dos problemas ou conflitos identificados;
● O Subversion não é uma ferramenta de rastreamento de bugs1. Como apresentado
anteriormente, o Subversion realiza o controle de versões dos arquivos de um projeto, no
entanto não existe nenhum suporte ou mecanismo para gerir os bugs detectados.
1 Erros ou inconsistências
Pró-Saúde Profissionais Associados Página 6
7. Controle de versões com o Subversion
3 Terminologias
Todas as áreas do conhecimento humano, tecnológicas ou não, apresentam termos e jargões
para nomear e identificar ações, conceitos, estados etc. O Subversion não foge à regra e também
oferece um conjunto de termos e jargões específicos.
● Workspace (Área de trabalho)
Termo usado para representar um diretório no computador cliente onde os arquivos de um
projeto serão transferidos durante uma retirada.
● Repository (Repositório)
Local onde os arquivos submetidos ao controle de versões são armazenados.
● Revision (Revisão)
Termo usado para descrever a numeração atribuída pelo Subversion a cada modificação de
um arquivo.
● Release,Version (Liberação)
Termo usado para descrever a denominação atribuída a um conjunto de arquivos para
identificar determinado ponto no tempo, sobretudo quando se quer identificar um conjunto
de novas características ou correções de um projeto.
● Commit (Entregar, Submeter)
Termo usado para descrever a transferência de um ou mais arquivos modificados da área de
trabalho para um repositório.
● Checkout (Retirar, Recuperar, Obter)
Termo usado para descrever a retirada de um ou mais arquivos de um repositório para a área
de trabalho.
● Diff (Comparação das diferenças)
Termo usado para descrever o processo de comparação das modificações entre revisões
diferentes de um arquivo.
● Import (Importação)
Termo usado para descrever o processo de transferência dos arquivos de um projeto a um
repositório, dando início ao controle de versões.
● Module (Projeto, Módulo)
Termo usado para descrever um nome simbólico associado a um conjunto de diretórios e
arquivos que compõem um projeto, a fim de facilitar o acesso e a manipulação.
Pró-Saúde Profissionais Associados Página 7
8. Controle de versões com o Subversion
4 Características
● Gerenciamento de projeto em equipe;
● Histórico de todas as alterações realizadas;
● Possibilidade de bloquear arquivos, permitindo que somente uma determinada pessoa
modifique o arquivo durante o desenvolvimento do projeto;
● Histórico de todas as mudanças feitas, isto permite voltar a uma versão anterior em caso de
problemas, e ver o que houve de errado com o projeto;
● Os projetos podem ser hospedados em repositórios;
● Podem ser criados diversas equipes de trabalho para cada repositórios, e definidos quem terá
ou não acesso ao repositório individualmente;
● Permissões de acesso individuais de leitura/gravação;
● É possível criar um usuário com acesso anônimo sem dar uma conta no sistema;
● Pode tanto utilizar o banco de dados de contas/senhas do sistema como um banco de dados
de autenticação do próprio Subversion;
● Permite utilizar diversos "métodos" de acesso ao servidor;
● Permite visualizar facilmente o que foi modificado entre duas versões de um arquivo.
Pró-Saúde Profissionais Associados Página 8
9. Controle de versões com o Subversion
5 Boas práticas
Aqui vão algumas dicas de como sobreviver no mundo do subversion e do versionamento de
projetos em geral:
● Jamais compartilhe arquivos seus (working copy) de outra forma que não pelo controlador
de versões. Não desenvolva formas alternativas de você e seu grupo de desenvolvimento
trabalharem em projeto comum;
● Esteja sempre atento a sua cópia local. Ao iniciar seu dia de trabalho dê um update (para
garantir que não está trabalhando em arquivos que outras pessoas já alteraram);
● Ao final do seu dia de trabalho ou ao finalizar uma funcionalidade dê um commit nas suas
alterações;
● Comunique-se com os participantes do projeto para evitar perder tempo fazendo merge de
alterações;
● Sempre efetue comentários quando a janela de diálogo é exibida ao submeter um arquivo ao
Subversion.
Lembre-se que somente o controlador de versões não fará milagres! é preciso se conscientizar de
sua existência e, adotar medidas para que o controle de versões seja eficaz.
Uma ferramenta não traz melhorias por si só, mas encoraja a adoção da prática correta para
melhorar o processo de desenvolvimento. O ganho de produtividade e qualidade só é obtido com
treinamento específico para utilização completa e correta da ferramenta. Caso contrário, há apenas
o aumento na burocracia do desenvolvimento.
Pró-Saúde Profissionais Associados Página 9
10. Controle de versões com o Subversion
6 Políticas de versionamento
Como várias pessoas trabalham em paralelo e concorrentemente nos mesmos arquivos do
projeto, é necessária uma política para ordenar e integrar todas essas fontes de alterações, de modo a
evitar que uma pessoa sobrescreva o trabalho de outra. Além de rastrear e controlar alterações, um
sistema de controle de versão também coordena a edição colaborativa e o compartilhamento de
dados entre várias pessoas de uma equipe.
Suponha a seguinte situação:
Ao final de ambas as alterações, mesmo que a versão de João não seja perdida (já que o
sistema de controle de versão se lembra de cada alteração), na prática, as mudanças de João não
serão consideradas e estarão acidentalmente ausentes na última versão do arquivo.
Pró-Saúde Profissionais Associados Página 10
11. Controle de versões com o Subversion
6.1 Lock-Modify-Unlock (Travar-Modificar-Destravar)
Nessa política, o sistema de controle de versão permite que apenas uma pessoa por vez
altere um determinado arquivo.
Observação: esta é a política recomendada para a Pró-Saúde.
Pró-Saúde Profissionais Associados Página 11
12. Controle de versões com o Subversion
6.2 Copy-Modify-Merge (Copiar-Modificar-Unir)
Neste modelo, não existe travamento de arquivos. Cada desenvolvedor trabalha livremente
em qualquer arquivo da sua cópia de trabalho. Ao final, as alterações de cada desenvolvedor são
mescladas no repositório formando a versão final.
Pró-Saúde Profissionais Associados Página 12
13. Controle de versões com o Subversion
6.3 Análise
A política "travar-modificar-destravar" é restritiva e freqüentemente atrapalha o trabalho dos
colaboradores. O travamento pode causar alguns problemas administrativos e forçar a uma
serialização desnecessária.
A solução "copiar-modificar-unir" parece um pouco caótica a princípio, mas funciona bem
na prática. Conflitos (sobreposições de alterações nos mesmos trechos de um arquivo) são raros e
são causados basicamente pela falta de comunicação entre colaboradores. Na grande maioria dos
casos, as alterações não se sobrepõe e são mescladas automaticamente pelo Subversion.
6.4 O padrão do Subversion
O Subversion utiliza a política copiar-modificar-unir. Entretanto, a partir da versão 1.2.0,
existe a possibilidade do travamento de arquivos. Esta funcionalidade foi incluída para lidar melhor
com arquivos que não podem ser mesclados com facilidade (arquivos binários em geral), tais como
arquivos compactados, imagens, formatos proprietários (CAD) etc.
O objetivo desta funcionalidade é fornecer uma forma de serializar o acesso a escrita a um
arquivo, evitando desperdício de tempo em mudanças que não podem ser mescladas. Como o
repositório registra todas as alterações efetuadas, o sistema de controle de versão pode informar
com facilidade quais as alterações que foram realizadas entre uma revisão e outra, quando isso
ocorreu e quem fez as alterações. Essas informações permitem um controle maior sobre mudanças
no projeto.
Pró-Saúde Profissionais Associados Página 13
14. Controle de versões com o Subversion
7 Ferramenta de gerenciamento
A ferramenta de gerenciamento dos repositórios Subversion escolhida foi o USVN 2, pois
além de ser distribuída sob a licença CecCill3 (compatível com a GPL) implementa uma interface
amigável, intuitiva e de fácil compreensão. Esta ferramenta tem por objetivo único e exclusivo o
gerenciamento de repositórios, grupos e usuários - possibilitando a criação destes e seu correto
gerenciamento. As opções disponíveis são:
● Criar projetos
● Criar grupos
● Criar usuários
● Editar informações de projetos, grupos e usuários
● Definir direitos de usuários
● Definir direitos de grupos
● Conceder direitos de administrador de projeto
O Gerenciador de Projetos Pró-Saúde, não é utilizado para a manipulação do conteúdo
versionado dentro dos repositórios Subversion, mas apenas para o gerenciamento dos mesmos. A
ferramenta adotada para a manipulação dos repositórios Subversion foi o TortoiseSVN4, pois
implementa todas as funcionalidades disponíveis pelo Subversion e está sob licença GPL5.
7.1 Interface
O Gerenciador de Projetos Pró-Saúde está disponível externamente através da url
http://prosaude.dnsalias.net/usvn, ou internamente em http://fenix/usvn. Vale lembrar que os
browsers testados foram o Mozilla Firefox 1.5.x/2.x e o Internet Explorer 6/7.
A seguir um passo-a-passo básico da utilização da ferramenta.
2 http://www.usvn.info
3 http://www.cecill.info
4 http://tortoisesvn.net
5 http://www.gnu.org/copyleft/gpl.html , http://pt.wikipedia.org/wiki/GNU_General_Public_License
Pró-Saúde Profissionais Associados Página 14
15. Controle de versões com o Subversion
● Acesso inicial
O primeiro acesso se dará exclusivamente pelo usuário “Admin”, o qual possui todos os
privilégios disponíveis, e por este motivo deverá ser utilizado com cautela, e exclusivamente
para operações administrativas, e nunca como um usuário comum. Todos os demais
usuários do sistema deverão sempre utilizar a tela que pode ser observada no Desenho 2.
Desenho 2: Login de acesso
Pró-Saúde Profissionais Associados Página 15
16. Controle de versões com o Subversion
● Tela principal
Neste primeiro momento ainda não existe nenhum projeto criado, como pode ser observado
no Desenho 3
Desenho 3: Tela principal
Pró-Saúde Profissionais Associados Página 16
17. Controle de versões com o Subversion
● Administração
Como pode ser observado no Desenho 4, as funcionalidades disponíveis para o usuário
“Admin” são a configuração do USVN e o gerenciamento de Projetos, Grupos e Usuários.
Desenho 4: Tarefas Administrativas
Pró-Saúde Profissionais Associados Página 17
18. Controle de versões com o Subversion
● Criando um novo projeto
Para criar um novo projeto deve-se selecionar a opção Projects e depois Add new project,
assim como pode-se observar no Desenho 5. O nome do projeto não deve conter espaços em
branco e nem caracteres acentuados, e uma descrição embora não obrigatória 6 é fortemente
recomendada, pois auxilia os clientes e demais colaboradores a obterem uma maior
compreensão do projeto. Observe que a opção Add me as admin of the project deve estar
desmarcada, pois como já recomendado, o usuário “Admin” deve ser utilizado apenas para
tarefas administrativas.
Desenho 5: Criando um novo projeto
6 Identificado por um asterisco vermelho (*).
Pró-Saúde Profissionais Associados Página 18
19. Controle de versões com o Subversion
Desenho 6: Grupo criado automaticamente
Página inicial do projeto
Navegar nas pastas do projeto (Trunk - Branches – Tags )
e definir permissões de acesso.
Desenho 7: Projeto criado
Pró-Saúde Profissionais Associados Página 19
20. Controle de versões com o Subversion
Definir acesso ao projeto
Definir acessos individuais
Desenho 8: Navegando no projeto
Desenho 9: Definindo acessos do projeto
Pró-Saúde Profissionais Associados Página 20
21. Controle de versões com o Subversion
● URL do projeto
Repare que no primeiro quadro do Desenho 10 é apresentado a url para checkout do projeto.
Esta mesma url é o link que deve ser passado aos clientes para que os mesmos após devida
autenticação (Desenho 11) possam efetuar o download da última versão do projeto.
Desenho 10: Detalhes do projeto
Desenho 11: Autenticação para simples conferência
Pró-Saúde Profissionais Associados Página 21
22. Controle de versões com o Subversion
● Dando permissão de visualização para os clientes
Os clientes não devem participar do projeto, mas deve-se conceder-lhes a possibilidade de
acompanhar a última versão disponível do projeto, de maneira que os mesmos possam
interagir com a equipe de desenvolvimento. Sendo assim, logo após a criação de um novo
projeto (o qual gera automaticamente um novo grupo com o mesmo nome do projeto), é
fortemente aconselhável que se crie um grupo o qual conterá apenas usuários com a opção
de leitura (apenas visualização). No Desenho 12 duas sugestões de nomes podem ser
observadas.
● Projeto_Clientes ● Projeto_Cli
Ex: Teste_1_Clientes Ex: Teste_1_Cli
Desenho 12: Sugestões de nomes
Para adicionar o grupo de acompanhamento, acesse a aba Admin e escolha a opção Add
new group, entre com um nome e uma descrição deste grupo assim como mostrado no
Desenho 13. Caso já existam usuário que irão participar deste projeto, os mesmos podem ser
adicionados apenas marcando-se um-a-um no campo List users, assim como indica a seta.
Desenho 13: Grupo de acompanhamento
Após adicionar um grupo que conterá penas usuários com permissão de leitura, adicione-o
ao projeto. Perceba que os campos de adição constantes possuem um recurso denominado
“auto complete”, portanto apenas digite a primeira letra, e uma lista lhe será exibida para
seleção. Selecione então o grupo de leitores e clique no botão Add.
Pró-Saúde Profissionais Associados Página 22
23. Controle de versões com o Subversion
Desenho 14: Adicionando grupo de visualizadores ao projeto
● Definindo usuário administrador
Para definir qual usuário será o administrador do projeto, basta seleciona-lo no campo
Admin users e clicar no botão Add. Vale lembrar que um administrador de projeto não
possui as mesmas atribuições de um administrador do Gerenciador de Projetos Pró-Saúde
(e nem deve tê-lo), já que esta ação pode abrir uma brecha grave de segurança.
Desenho 15: Grupo de leitores adicionado
Pró-Saúde Profissionais Associados Página 23
24. Controle de versões com o Subversion
● Gerenciando usuários
Para adicionar ou editar usuários, acesse a aba Admin e vá até a opção Users. Como pode
ser observado no Desenho 16, é apresentada uma listagem com todos os usuários existentes
no Gerenciador de Projetos Pró-Saúde, e estes podem ser editados ou excluídos.
Editar Excluir
Desenho 16: Gerenciando usuários
Para adicionar um novo usuário, acesse a opção Add new user disponível nesta mesma tela.
Assim como mostrado no Desenho 17, entre com um nome (que também não deve conter
espaços em branco e nem caracteres acentuados) e uma senha 7, além de primeiro e segundo
nomes e email de contato. Caso o grupo para qual este usuário irá pertencer já existir,
selecione-o em Affected Groups (assim como indica a seta).
7 http://dalton.dsc.ufcg.edu.br/www/Como_escolher_uma_boa_senha
Pró-Saúde Profissionais Associados Página 24
25. Controle de versões com o Subversion
A utilização destas duas opções é desencorajada
fortemente. Para adicionar um usuário como
administrador de um projeto vide os comentários do
Desenho 13.
Desenho 17: Adicionando um novo usuário
● Usuário comum
Quando um usuário comum está logado, este possui acesso restrito, conseguindo apenas
alterar suas informações pessoais e visualizar o projeto, porém isso não o impede de
participar do projeto.
Desenho 18: Atribuições de usuário comum
Pró-Saúde Profissionais Associados Página 25
26. Controle de versões com o Subversion
● Usuário administrador do projeto
Um usuário com status de administrador de projeto não possui direitos sobre o Gerenciador
de Projetos Pró-Saúde, mas apenas sobre o projeto ao qual está vinculado. Dentre suas
atribuições dentro do projeto, é possível adicionar e remover grupos, adicionar e remover
usuários e definir níveis de acesso.
Editar usuários do grupo
Desenho 19: Atribuições de usuário administrador de projeto
Pró-Saúde Profissionais Associados Página 26
27. Controle de versões com o Subversion
● Usuário administrador do projeto adicionando outros usuários existentes
Para editar os usuários participantes de um grupo, basta clicar no ícone destacado no
Desenho 19 para ser remetido a tela presente no Desenho 20.
Desenho 20: Gerenciando usuários de um grupo
Desenho 21: Usuário margareth adicionado ao grupo Teste_1
Pró-Saúde Profissionais Associados Página 27
28. Controle de versões com o Subversion
8 Ferramenta de manipulação
A ferramenta escolhida para a utilização do Subversion foi o TortoiseSVN, pois por se tratar
de uma ferramenta gráfica a mesma se integra ao Windows® Explorer8 e facilita o uso do
Subversion para usuários do Microsoft® Windows®. Após instalado se torna uma opção do menu
contextual do Windows® Explorer (aquele menu que é exibido quando o botão direito do mouse é
acionado). A partir das opções exibidas pelo menu é que todas as tarefas são executadas.
Para informações mais detalhadas consulte os links abaixo:
● Uso básico do TortoiseSVN
http://www.cbrasil.org/wiki/index.php?title=Uso_B%C3%A1sico_do_TortoiseSVN
● Uso avançado do TortoiseSVN
http://www.cbrasil.org/wiki/index.php?title=Uso_Avan%C3%A7ado_do_TortoiseSVN
8.1 Instalando as ferramentas
Após criado o projeto pelo Gerenciador de Projetos Pró-Saúde, e definido os grupos e
políticas de acesso, deve-se instalar o TortoiseSVN, o tradutor para português e o corretor
ortográfico. Para tal, acesse os links (respeite caracteres maiúsculos e minúsculos) para a instalação
dos aplicativos como indicado abaixo e escolha a plataforma correta (32 ou 64bits) conforme o seu
equipamento:
● Acesso interno: http://fenix/aplicativos/TortoiseSVN
● Acesso externo: http://prosaude.dnsalias.net/aplicativos/TortoiseSVN
Desenho 22: Selecionando a plataforma
8 Shell Extension
Pró-Saúde Profissionais Associados Página 28
29. Controle de versões com o Subversion
8.1.1 Identificando a plataforma
Não há nenhum problema caso seja escolhida a plataforma errada para a instalação do
TortoiseSVN (e complementos), pois caso diferente, a instalação será abortada informando que a
plataforma é incompatível.
Desenho 23: Instalação em plataforma errada
8.1.2 Instalando...
Após escolher a plataforma correta (32bits ou 64bits), simplesmente siga a seqüência
abaixo:
● 01_TortoiseSVN-1.4.3.msi
● 02_LanguagePack-1.4.3.exe
● 03_SpellChecker.exe
Você será questionado quanto a ação a tomar. Quanto for exibida a tela presente no Desenho 24,
escolha a opção Executar, e na próxima tela também escolha Executar. Nas próximas telas,
simplesmente escolha Next (Avançar) até o final da instalação. Caso solicitado que o computador
seja reiniciado, somente o faça após a instalação dos três aplicativos9. Siga as mesmas
recomendações pra os três aplicativos, e após a instalação do último, reinicie o computador. Não
será necessário tecer maiores comentários sobre o processo de instalação, pois este é muito simples.
Desenho 24: Instalando o Tortoise SVN Desenho 25: Instalação em plataforma 32bits
9 “01_TortoiseSVN-1.4.3.msi”, “02_LanguagePack-1.4.3.exe” e “03_SpellChecker.exe”
Pró-Saúde Profissionais Associados Página 29
30. Controle de versões com o Subversion
8.1.3 Ajustes finais
Após a instalação do terceiro e último item (03_SpellChecker.exe) e a reinicialização do
sistema operacional, clique com o botão inverso do mouse sobre a área de trabalho e escolha
TrotoiseSVN → Settings (Desenho 26). Na janela de diálogo que se apresenta (Desenho 27), clique
sobre a opção Language e escolha Português. No campo Global ignore pattern, entre com a
extensão dos arquivos (separados por espaço10) que devem ser ignorados pelo Subversion. Por
exemplo. Para projetos do Audocad, é interessante que arquivos com a extensão “.bak” sejam
ignorados, pois são arquivos de backup criados antes do último salvamento, e não precisamos de
mais uma cópia do mesmo arquivo no Subversion.
Desenho 26: Alterando as configurações
Desenho 27: Definindo idioma e arquivos ignorados
10 *.bak *.tmp *.~*
Pró-Saúde Profissionais Associados Página 30
31. Controle de versões com o Subversion
O próximo passo é adicionar colunas específicas para visualização no Windows Explorer11.
Após abrir o Windows Explorer, entre na pasta onde um projeto Subversion já exista (identificado
pela imagem ) acesse o menu Exibir → Escolher detalhes (Desenho 29). Na janela de diálogo
exibida (Desenho 28), identifique as colunas que começam com SVN e marque conforme a lista
abaixo:
● SVN Revisão ● SVN Proprietário da trava
● SVN Status ● SVN URL
● SVN Autor
Desenho 29: Detalhes de exibição
Desenho 28: Status do Subversion
Use os botões Mover para cima e Mover para baixo, de maneira que as colunas sejam exibidas na
ordem que você preferir. No exemplo utilizado as colunas são exibidas respectivamente conforme o
Desenho 30.
Desenho 30: Colunas do Subversion no gerenciador de arquivos (Windows Explorer)
8.2 Conhecendo a ferramenta
8.2.1 Ícones de identificação
Abaixo serão exibidos todos os ícones utilizados para a identificação de um projeto
Subversion em seu Workspace com a descrição e seus respectivos significados.
11 Que pode ser acionado pela combinação SUPER+E ( + E)
Pró-Saúde Profissionais Associados Página 31
32. Controle de versões com o Subversion
Ícone Descrição
Objeto do workspace presente em um projeto do Subversion (não sofreu modificações).
Objeto do workspace presente em um projeto do Subversion marcado como somente
leitura.
Objeto do workspace ainda não presente em um projeto do Subversion (sofreu
modificações).
Objeto do workspace ainda não presente em um projeto do Subversion marcado para
adição no próximo commit (Submeter).
Objeto do workspace presente em um projeto do Subversion marcado para remoção no
próximo commit (Submeter).
Objeto do workspace presente em um projeto do Subversion travado contra alterações.
Exibido quando houver conflito entre um objeto (arquivo ou pasta) do workspace e o
mesmo objeto presente em um projeto do Subversion no ato do commit.
Desenho 31: Ícones de identificação de um projeto Subversion
8.2.2 Menus de contexto
Nos Desenhos 32, 33, 34, 35 e 37 são apresentados respectivamente os menus de contexto
exibidos quando o botão inverso do mouse é acionado sobre uma pasta já versionada, uma pasta
ainda não versionada, um arquivo já versionado, um
arquivo não versionado (dentro de um projeto) e um
arquivo que não pertence a um projeto Subversion.
Desenho 32: Menu de contexto exibido Desenho 33: Menu de contexto
em uma pasta versionada pelo exibido em uma pasta ainda não
Subversion versionada pelo Subversion
Pró-Saúde Profissionais Associados Página 32
33. Controle de versões com o Subversion
Desenho 34: Menu de contexto exibido em um arquivo
versionado pelo Subversion
Desenho 35: Menu de contexto exibido em um arquivo presente em um
projeto, mas ainda não versionado pelo Subversion
Pró-Saúde Profissionais Associados Página 33
34. Controle de versões com o Subversion
Desenho 37: Menu de contexto
exibido em um arquivo que não
pertence a um projeto versionado
pelo Subversion
Desenho 36: Desabilitando arquivos ocultos
No Desenho 37 é apresentada a janela de diálogo onde é possível habilitar ou desabilitar a exibição
de arquivos e diretórios ocultos. Para tal, abra o Windows Explorer11 e acesse o menu Ferramentas
→ Opções de pasta, e na janela de diálogo apresentada selecione a aba Modo de exibição. Role a
barra de rolagem até o final e selecione “Não mostrar pastas e arquivos ocultos”. Clique em OK
para concluir.
8.2.3 Criando um novo projeto em um repositório existente
● Crie um diretório para abrigar o conteúdo que será importado para o projeto do Subversion;
● Copie todo o conteúdo que será adicionado ao projeto Subversion para o diretório que
acabou de criar;
● Clique com o botão direito do mouse sobre o diretório que criou e selecione TortoiseSVN
→ Importar... (note que o diretório não será adicionado mas somente o seu conteúdo, caso
você queira que ele seja adicionado coloque ele dentro de outro diretório;
● Digite a URL do repositório;
● Entre com usuário e senha válidos para efetuar o Import;
● Se o Import for realizado com sucesso, apague todo o conteúdo do diretório que criou (caso
queira utiliza-lo para abrigar o projeto – caso contrário apague-o e crie um novo);
● Clique com o botão inverso do mouse sobre o diretório que escolheu para abrigar o projeto
do Subversion e escolha a opção SVN Obter;
● Entre com a URL (como por exemplo: http://prosaude.dnsalias.net/usvn/svn/Teste_1/trunk)
Pró-Saúde Profissionais Associados Página 34
35. Controle de versões com o Subversion
do repositório para que o conteúdo que acabou de ser importado para o projeto Subversion
seja baixado.
8.2.4 Baixando um projeto de um repositório já existente
● Crie uma pasta local para onde ficarão armazenados os arquivos (deve estar vazia);
● Clique com o botão inverso do mouse e escolha a opção SVN Obter;
● Digite a URL do repositório e o diretório local que você acabou de criar (por exemplo:
http://prosaude.dnsalias.net/usvn/svn/Teste_1/trunk/);
● Entre com usuário e senha válidos para o projeto.
Pró-Saúde Profissionais Associados Página 35