Configurando Subversion

O subversion (SVN) é um ótimo controlador de versões, não só para programação, mas para imagens, vídeos, arquivos texto, binários e todo tipo de arquivo digital que for preciso um versionamento.

[ Hits: 186.796 ]

Por: Ricardo Brito do Nascimento em 28/05/2008 | Blog: http://brito.blog.incolume.com.br


Como criar e usar um servidor Subversion (SVN) passo a passo



Como criar e usar um servidor Subversion (SVN)

Subversion é um software muito usado para controle de versões de sistemas. Muitas vezes desenvolvemos um projeto e precisamos ter um bom controle do seu versionamento, nesse caso o svn é uma ferramenta muito interessante.

Nesse documento estão descritas algumas maneiras de configurar um servidor svn e alguns comandos úteis para usá-lo.

Os pacotes necessários para a instalação e configuração são os seguintes:
  • httpd [ou apache ou apache2 (depende da distribuição)]
  • subversion
  • mod_dav_svn [ou subversion-server ou libapache2-svn (depende da distribuição)]

Partiremos do princípio que os pacotes do httpd já estejam instalados na máquina que será o servidor svn.

Para outras informações úteis sobre svn temos "Apresentação da Ferramenta de Versionamento" e "Comandos úteis".

1. Site oficial


2. Instalando os pacotes svn

Como o yum calcula as dependências automaticamente, podemos iniciar com o módulo para o protocolo httpd (apache), que o servidor svn será juntamente instalado.

# yum -y install mod_dav_svn

Resolved 
=================================================== 
 Package       Arch   Version       Repository   Size  
===================================================
Installing: 
 mod_dav_svn   i386   1.4.2-2.fc6   updates      70 k 
 subversion    i386   1.4.2-2.fc6   updates      2.3 M 
 
Transaction Summary 
=================================================== 
Install      2 Package(s)          
Update       0 Package(s)          
Remove       0 Package(s)          

3. Criar um repositório svn no servidor

Nos passos abaixo usaremos um repositório chamado /var/svn, mas se desejar criá-lo em /home/usuário/svn, ou em qualquer outro local desejado, basta trocar /var/svn pelo qual será usado em seu servidor.

Antes de criar o repositório precisamos ter o diretório correspondente no sistema, por isso, use o comando abaixo para criá-lo:

# mkdir /var/svn

Agora vamos executar o comando necessário para criar o repositório /svn, vale lembrar que o comando abaixo deve ser executado em um diretório vazio, porém, já existente no sistema, pois o subversion irá apenas criar a estrutura necessária para o controle de versões, então execute o comando abaixo para tal procedimento:

# svnadmin create /var/svn

Vale uma observação aqui, até a versão 1.1 do subversion, o tipo de repositório padrão era o Berkeley DB, mas a partir da versão 1.2 o padrão passou a ser o FSFS. O suporte FSFS apareceu na versão 1.1. Na 1.0 apenas o Berkeley DB era suportado.

Para especificar o tipo do repositório pode-se usar o argumento --fs-type:

# svnadmin create --fs-type fsfs /var/svn;
ou
# svnadmin create --fs-type bdb /var/svn

O repositório criado estará vazio e começará a contar a partir da revisão 0 (zero), a qual corresponderá à sua criação.

Para mais informações sobre o tipo do repositório acesse:
    Próxima página

Páginas do artigo
   1. Como criar e usar um servidor Subversion (SVN) passo a passo
   2. Customizando o servidor SVN
   3. Configurando o apache para conexões http com svn
   4. Gerenciando projetos e arquivos no svn
   5. Dicas adicionais e bibliografia
Outros artigos deste autor

Comando sudo - instalação e configuração

Conexão com chaves assimétricas sem uso de senha em servidor sshd

Clonagem de Hardware Hotline em Software Livre

Encapsulamento de Apache com chroot

Formatando exibição de datas no Linux

Leitura recomendada

Aplicativos do Linux em "Desktop"

Efeito metálico no GIMP

Um olhar sobre o Portage-tools - Parte I

Venha pro lado de cá!

Visualização do status das contas no GAIM

  
Comentários
[1] Comentário enviado por joaomc em 29/05/2008 - 09:10h

Uma boa pedida para quem quiser instalar um servidor Subversion no Windows é usar o Collabnet Subversion Server, que já vem empacotado com tudo o que precisa. Funciona muito bem.
Eu gosto muito de usar o Git-SVN para interagir com repositórios SVN. Vale a pena aprender.

[2] Comentário enviado por Bruno Faria em 29/05/2008 - 14:11h

Olá,
muito bom o artigo, ótimo mesmo.
Porém, qual seria a diferença entre CVS e SVN?

[3] Comentário enviado por gjr_rj em 29/05/2008 - 18:57h

Gostei do artigo, bom mesmo !

[4] Comentário enviado por leobragatti em 30/05/2008 - 12:00h

cara, excelente artigo
ja implementei aqui e vou começar a fazer os trabalho de faculdade com os caras da faculdade usando isso :)

Muito obrigado pelo artigo
abraços

[5] Comentário enviado por joaomc em 02/06/2008 - 09:33h

@brunoh,

O SVN foi basicamente construído para substituir o CVS. Entre as vantagens, podemos citar os commits atômicos com changesets (conjuntos de mudanças): As alterações feitas no repositório são enviadas em bloco. No CVS, as alterações são feitas por arquivo. Assim, tem-se um histórico mais claro e limpo das modificações.

[6] Comentário enviado por gokden em 13/10/2008 - 18:36h

pessoal... eu uso o openSUSE 11
e ocorre este erro aqui..

httpd2: Syntax error on line 180 of /etc/apache2/httpd.conf: Syntax error on line 102 of /etc/apache2/default-server.conf: Syntax error on line 2 of /etc/apache2/conf.d/subversion.conf: Cannot load /srv/www/modules/mod_dav_svn.so into server: /srv/www/modules/mod_dav_svn.so: cannot open shared object file: No such file or directory

alguem sabe o pq ??
me parece que ele não encontrou o mod_dav_svn.so =D
alguem jah teve este problema ??

[7] Comentário enviado por guiteodasilva em 15/10/2008 - 16:56h

Fala ai galera,
Seguite instalei o subversion no meu servidor (ubuntu 8.04) e depois o subclipse no eclipse da minha máquina pessoal(ubuntu 8.04).
Conecto tranquilo no repositorio consigo dar commit,update, checkout.

Os aquivos transferidos para o repositorio no servidor pela interface do eclipse aparecem tranquilo tranquilo consigo abrir e tudo mais. So que, quando entro no servidor e entro no repositorio e mando listar os arquivo, os mesmos não se encontram la. executo o locate e nada também. Ja tentei de tudo, me ajudem!!!

Valew.

[8] Comentário enviado por gokden em 04/11/2008 - 15:56h

oi denovo gente...
alguem sabe se tem algum jeito onde eu possa dar privilégios separadas de usuário para usuário ?
exemplo:
o user a pode vizualizar o arquivo a
o user b pode vizualizar o arquivo b
mas o user a nao ve o arquivo b nem o user b ve o arquivo a =D

deu pra intende ??

grato....

[9] Comentário enviado por parrera em 09/11/2009 - 10:45h

Bom demais este tutorial, mas o seguinte, uso o svnserve como meu servidor que roda em uma máquina que usa OpenSUSE 11.1, seguinte, na minha rede interna o svn está funcionando normalmente, mas agora gostaria de compartilhar nosso repositorio com uma outra rede, tem como fazer isso usando o svnserve ou é preciso usar o apache?
Obs: Quero que outra rede passe a comunicar com nosso repositorio, para cliente usamos o tortoiseSVN(windows), tem como isso usando o svnserve? Existe algum tutorial para isso?Alguma dica?Obrigado à todos

[10] Comentário enviado por klebervirgilio em 22/01/2010 - 13:07h

M diga, como fica as trunk/branches/ tags????

[11] Comentário enviado por esardenberg em 16/03/2012 - 15:21h

Amigos

Preciso renomear o nome de um repositorio já em utilização. Somente renomeio a pasta criada?

Obrigado


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts