Montando repositório Subversion no Debian Squeeze

O Que é o Subversion?

Subversion é um sistema de controle de versão livre/open-source. Isto é, o Subversion gerencia arquivos e diretórios, e as modificações feitas neles ao longo do tempo. Isto permite que você recupere versões antigas de seus dados, ou que examine o histórico de suas alterações. Devido a isso, muitas pessoas tratam um sistema de controle de versão como uma espécie de “máquina do tempo”.

1º – Instalando os pacotes necessários:

# apt-get update && apt-get install subversion subversion-tools libapache2-svn

Assim que os pacotes forem baixados e instalados, o módulo para integração libapache2-svn será iniciado e bastará apenas reiniciar o Apache para entrar em funcionamento.

2º – Criando o diretório onde iremos criar os repositórios subversion e o grupo que podera executar os commits:

# mkdir -p /usr/local/svn 
# groupadd subversion

3º – Criando o repositório e aplicando as permissões necessárias:

# svnadmin create /usr/local/svn/projeto1 
# chown -R www-data:subversion /usr/local/svn 
# chmod -R 770 /usr/local/svn

4º – Configurando o repositório:

OBS: Adiconar no final do arquivo.

# vi /etc/apache2/mods-available/dav_svn.conf

1
2
3
4
5
6
7
8
9
10
11
<Location /svn>
        DAV svn
        SVNParentPath /usr/local/svn/
        SVNListParentPath on
        AuthType Basic
        AuthName "Acessando repositorio Subversion"
        AuthUserFile /etc/apache2/passwd
        #<LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
        #</LimitExcept>
</Location>

5º – Crie o arquivo de senhas e os usuários que acessarão o repositório:

# htpasswd -cm /etc/apache2/passwd amarildo; useradd amarildo
# htpasswd -m /etc/apache2/passwd sertorio; useradd sertorio

6º – Adicionar utilizadores

Adiciona-se ao grupo subversion os utilizadores com direitos de acesso aos repositórios:

# addgroup amarildo subversion 
# addgroup sertorio subversion

7º – Importando Projeto

* Importação do projeto LocalHost
svn import /var/www/portal file://localhost/usr/local/svn/projeto1

* Importação projeto Remota
svn import /var/www/portal svn+ssh://server/usr/local/svn/projeto1

8º – Testando

Abra seu browser favorito => http://localhost/svn

Clientes/fachadas em ambiente gráfico de usuário (GUI):

  • RapidSVN fachada multi-plataformas em ambiente gráfico de utilizador escrita em C++ e recorrendo à biblioteca wxWidgets
  • eSvn cliente baseado na biblioteca Qt
  • JSVN cliente Java swing
  • SmartSVN Cliente SubVersion para Linux, Windows e MAC
  • TortoiseSVN Windows shell (i.e. Explorer) extension
  • svnX Mac OS X GUI front-end to svn
  • AnkhSVN Windows é uma extensão (addon) do Visual Studio .NET – Permite que as ações mais comuns sejam executadas diretamente da IDE.

Alternativas:

  • Subversion for NetBeans – Plugin de integração do Subversion no NetBeans
  • subclipse – projecto de integração do Subversion no Eclipse
  • SVNKit (antigo JavaSVN) – biblioteca de cliente Subversion em Java.
  • Subversion for Mac OS X

Referências: http://pt.wikipedia.org/wiki/Subversion
http://svnbook-pt-br.googlecode.com/svn/snapshots/1.4/svn.intro.whatis.html

 

Esta entrada foi publicada em Subversion. Adicione o link permanente aos seus favoritos.

2 respostas a Montando repositório Subversion no Debian Squeeze

  1. Rodrigo Vitorino disse:

    Amarildo,
    Parabéns pelo post, extremamente bem escrito, claro e ao mesmo tempo com riqueza de informação.
    Indiquei este post para um colega e o feedback que recebi foi que ‘diminuiu o tempo de implementação do subversion na empresa’ que ele trabalha.
    Forte abraço.

    • Obrigado Vitorino!
      Vindo de você é um grande elogio.
      Estou trabalhando em um artigo master/slave do OpenLdap e vou enriquecer este artigo com integração do Subversion. Assim que estiver pronto eu te aviso.

      Abraço!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>