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.641 ]

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

Encapsulamento de Apache com chroot

Gerenciando certificados A1 fornecidos pelo ICB-Brasil no navegador Chrome sobre Linux

Proteção utilizando fail2ban contra ataques do tipo

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

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

Leitura recomendada

Usando o DVDStyler para autoria de DVDs

KoverArtist: Criando capas de CDs e DVDs

Modelos de Negócio para o Software Livre

Uma abordagem ao eGroupware como solução para agendamento

Instalando e utilizando o LimeWire no Debian

  
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