Вы находитесь на странице: 1из 15

Universidade Federal de São Carlos

Departamento de Computação

Tutorial de uso
do Subversion com RapidSVN

João Celso Santos de Oliveira


Orientação: Prof.ª Dra. Marilde T. P. Santos

- São Carlos -
Agosto de 2010
Sumário
APRESENTAÇÃO...............................................................................................................................3
1 - CONCEITOS FUNDAMENTAIS.................................................................................................. 4
2 - OBTENDO SUBVERSION............................................................................................................6
Ambiente MS Windows................................................................................................................... 6
Ambiente GNU/Linux......................................................................................................................7
3 – USANDO O SUBVERSION......................................................................................................... 8
Obtendo uma cópia local..................................................................................................................8
checkout...................................................................................................................................... 8
Modificando uma cópia local........................................................................................................... 9
editar arquivo.............................................................................................................................. 9
bloqueio de arquivo...................................................................................................................10
adicionando diretórios e arquivos............................................................................................. 11
copiando e movendo................................................................................................................. 12
compartilhar modificações (commit)........................................................................................13
REFERÊNCIAS................................................................................................................................. 15
APRESENTAÇÃO

Este tutorial faz parte das atividades desenvolvidas por João Celso Santos de Oliveira, aluno
do curso de Ciências da Computação do Departamento de Computação da UFSCar (Universidade
Federal de São Carlos), ingressante em 2010.

As atividades citadas se referem ao programa de Bolsa Atividade oferecido pela ProACE


(Pró-reitoria de Assuntos Comunitários e Estudantis da UFSCar) e foram efetivadas sob orientação
da Prof.ª Dra. Marilde T. P. Santos durante o ano de 2010.

Este tutorial pretende fornecer informações referentes ao uso do sistema de gerenciamento


de versões Subversion através do cliente gráfico RapidSVN (http://rapidsvn.tigris.org/). Está em
fase de desenvolvimento por isso ainda faltam informações e casos de uso.

Uma leitura mais completa sobre o assunto pode ser feita com o livro oficial do projeto
Subversion e outros links listados nas Referências.

Para mais informações relacionadas ou sugestões entre em contato por e-mail:

• joaocelso@comp.ufscar.br; ou

• joaocelso.so@gmail.com.
1 - CONCEITOS FUNDAMENTAIS

Subversion, também chamado de 'svn', é um sistema de controle de versão, isto é, gerencia


arquivos, diretórios e as mudanças feitas sobre eles mantendo um histórico que permite a
recuperação de versões anteriores de cada documento, ou ainda verificar quais mudanças ocorreram
entre uma versão de um documento e outra. É gratuito e de código aberto.

A cada atualização em algum conjunto de diretórios ou arquivos do repositório é gerada


uma nova revisão. A primeira revisão, na criação do repositório, é a número 1 e ao receber
alterações o repositório se diz em uma nova revisão de identificador numérico imediatamente
superior.

Subversion permite que várias pessoas em diferentes computadores possam trabalhar nos
repositórios ao mesmo tempo. De onde estiverem, essas pessoas podem possuir permissões para
modificar um mesmo conjunto de arquivos e diretórios contidos no repositório, numa produção
colaborativa.

Para um grupo de usuários de um repositório num servidor svn on-line, um usuário A poderá
obter uma cópia local de trabalho dos arquivos e diretórios do repositório. Na cópia local, podem
ser feitas todas as edições necessárias, seja editando os arquivos existentes, adicionando novos
arquivos e diretórios ou mesmo apagando e movendo objetos na cópia local.

Terminada a edição, o usuário A deverá compartilhar seu trabalho enviando suas


modificações para o servidor onde automaticamente o repositório on-line se torna modificado e
qualquer outro usuário tem acesso a uma versão mais recente do mesmo.

O trabalho colaborativo precisa ser organizado. Se não o for abre-se a possibilidade de


existirem várias pessoas editando o mesmo arquivo ao mesmo tempo, talvez fazendo mudanças
incompatíveis, e logo alguém poderá ter perdido horas de trabalho. Por isso o Subversion é capaz de
trabalhar com travas em arquivos, um mecanismo que toma as permissões de edição de um arquivo
apenas ao dono da trava.
Quando um usuário A deseja editar um arquivo deve primeiro verificar se não está travado.
Se o arquivo estiver livre para edição o usuário A poderá travá-lo como se deixasse aos outros
usuários a mensagem “estou editando este arquivo e não gostaria que alguém o modificasse
enquanto isso!”. Logo após terminar a edição, ao enviar as mudanças ao servidor, a trava é
automaticamente retirada.

Outra solução disponibilizada pelo Subversion é a possibilidade de mesclar objetos de um


repositório.

Supondo que um usuário A edita uma parte de um arquivo e um usuário B trabalha em outra
parte do mesmo arquivo de forma que um não interfere no trabalho do outro. Se torna desnecessário
travar o arquivo pois quando o usuário A envia seu trabalho para o servidor e após o usuário B faz o
mesmo, o Subversion reconhece edições em partes distintas do documento e mescla os trabalhos.

No caso em que ambos os usuários editem a mesma parte do texto. Se o usuário A enviar
seu trabalho primeiro o servidor irá aceitar como uma edição comum. Quando o usuário B tentar
enviar seu trabalho o servidor irá avisar que há um conflito, isto é, que a mesma parte do texto, na
versão do documento no repositório, também foi modificada recentemente. Neste ponto é quando o
usuário B deverá decidir o que fazer: abandonar seu trabalho e aceitar a versão do repositório,
manter sua versão rejeitando o trabalho do usuário A ou ainda reescrever a parte do texto para que
não se perca nenhuma das alterações sugeridas.

A forma como o Subversion gerencia os arquivos permite que seja de objetivo geral, isto é,
não apenas para gerenciamento de código fonte para softwares, mas capaz de gerenciar toda espécie
de textos em geral e outros arquivos como imagens, áudios, vídeos, outros tipos binários, etc.
2 - OBTENDO SUBVERSION

Para uso do Subversion é necessário que computador tenha instalado um software cliente e
acesso ao servidor on-line.

Há uma variedade de clientes disponíveis para vários sistemas operacionais com interfaces
gráfica, para linha de comando e também como plug-ins para IDE's e até para o MS Windows
Explorer.

Deixamos como sugestão o RapidSVN (http://www.rapidsvn.org). É gratuito, open-source e


disponível para vários sistemas operacionais.

Ambiente MS Windows

Obtenha o instalador em http://www.rapidsvn.org/.


Ambiente GNU/Linux

Deve-se verificar se o pacote 'rapidsvn' é disponibilizado pela distribuição:

Debian/Ubuntu Procure o pacote rapidsvn

# aptitude install rapidsvn


Gentoo Procure o pacote rapidsvn

# emerge -a rapidsvn
3 – USANDO O SUBVERSION

Obtendo uma cópia local

A primeira tarefa é conhecer o repositório.

Um repositório pode ser público, onde qualquer um na rede pode acessá-lo como usuário
anônimo. Geralmente repositórios públicos dão aos anônimos apenas permissões de leitura.

Simularemos um repositório privativo onde, para obter acesso, os usuários precisarão de


login e senha cadastrados.

No texto vamos dar ao repositório o endereço fictício de http://servidor/tutorial e usar o


login fictício 'editor' e uma senha qualquer.

checkout

Para obter uma cópia local do repositório usamos o comando checkout.

Criamos um diretório em 'Desktop' com o nome 'trabalho'. Nele será colocada nossa cópia
local.

Com o RapidSVN acessamos o menu 'Repositório' → 'Checkout' e preenchemos com o


endereço do repositório e o endereço onde deve ser salvo localmente.

Como é necessária autenticação para acesso ao nosso repositório, são pedidos usuário e
senha.
O diretório 'trabalho' contém agora todos os arquivos e configurações para que possamos
usar o repositório online. Pode ser manipulado como um diretório comum (copiado, movido,
apagado), sendo possível levá-lo num pendrive ou distribuí-lo a outras pessoas.

Modificando uma cópia local

editar arquivo

Edita-se um arquivo da maneira tradicional.

Por exemplo, para editar o arquivo 'saudacoes.txt' podemos acessá-lo pelo diretório
'trabalho', abri-lo, editá-lo com um editor de texto preferido e salvar. Ou ainda um duplo clique
sobre o nome do arquivo na listagem do RapidSVN irá abrir o arquivo com o editor padrão.

Verifique que, após a edição, o ícone do arquivo 'saudacoes.txt' no RapidSVN está em


vermelho indicando que o arquivo foi modificado.

bloqueio de arquivo

Se é desejado bloquear um arquivo para evitar que seja modificado por outros usuários
enquanto se está editando usa-se o comando 'bloquear' (ou 'lock').

Clique com o botão direito sobre o arquivo a ser editado e escolha 'Bloquear...'.

Será aberta uma janela para edição de um comentário justificando o bloqueio do arquivo.

Após o bloqueio, o ícone se modifica.


Ao terminar a edição a trava deve ser retirada. Isto ocorrerá automaticamente quando o
usuário enviar o trabalho para o servidor ou também pode ser feito clicando com o botão direito do
mouse sobre o arquivo no RapidSVN e escolhendo 'Desbloquear'.

Outros usuários também podem ter bloqueado o arquivo para edição, neste caso, ao atualizar
a cópia local (se a opção 'Visualizar' → 'Recarregar e Atualizar' estiver checada) o arquivo
aparecerá com ícone modificado e com o nome do dono do bloqueio.

Neste caso, não é possível enviar as modificações locais do arquivo para o repositório
online.

adicionando diretórios e arquivos

A adição de diretórios e arquivos é feita em duas partes.


Primeiro é necessária a criação destes objetos no diretório de trabalho local como sendo
diretórios ou arquivos comuns, depois se faz a adição manual destes ao sistema de versões.

Criamos no diretório 'trabalho' um subdiretório com nome 'joao' e um arquivo texto simples
com nome 'joao.txt', ambos vazios.

Observe que no RapidSVN ambos diretório e arquivo criados são listados com ícone
diferenciado revelando que estão presentes entre os arquivos mas não estão versionados.

Para o diretório, clicamos com o botão direito do mouse e selecionamos 'add'. Também
podemos usar 'Adicionar recursivo' iria adicionar ao projeto todo o conteúdo do diretório.

Para o arquivo, clicamos com o botão direito e selecionamos 'add'.

O diretório e o arquivo agora fazem parte da cópia local.

copiando e movendo

Copiar e mover arquivos e diretórios diretamente no sistema de arquivos é semelhante a


adição. Primeiro se copia ou move e depois se diz ao RapidSVN o que aconteceu. Porém é muito
mais vantajoso mover ou copiar usando a interface do RapidSVN.

Na interface do RapidSVN, arrastamos o arquivo de texto 'joao.txt' para o diretório 'joao'.


Ele irá perguntar se pretendemos copiar ou mover. Escolhemos copiar.

compartilhar modificações (commit)

Para compartilhar as modificações feitas na cópia local são necessárias basicamente duas
ações: atualizar as informações e enviar o trabalho.

Para atualizar clique no botão correspondente.

Não havendo nenhum outro editor trabalhando no


repositório ao mesmo tempo, não haverá atualizações.

Para enviar o trabalho clique no botão


correspondente e preencha um comentário.
REFERÊNCIAS

site: http://svnbook.org/

site: http://www.rapidsvn.org/index.php/Documentation

Вам также может понравиться