O Subversion é um sistema de controlo de versões 'open source'. Utilizando o Subversion pode gravar a história de ficheiros de código fonte e documentos. Eles gere ficheiros e directórios ao longo do tempo. Uma 'árvore' de ficheiros é colocada num repositório central. Este repositório é muito semelhante a um vulgar servidor de ficheiros, excepto que se lembra de todas as alterações efectuadas nos ficheiros e directórios.
Para aceder ao repositório do Subversion utilizando o protocolo HTTP deve instalar e configurar um servidor web com certificado digital. Está provado que o Apache2 funciona com o Subversion. Por favor consulte a sub-secção HTTP da secção Apache2 para o instalar e configurar. Consulte a sub-secção HTTPS da secção Apache2 para o instalar e configurar um certificado digital.
Para instalar o Subversion, execute o seguinte comando num terminal:
sudo apt-get install subversion libapache2-svn
Este passo assume que instalou os pacotes acima referidos no seu sistema. Esta secção explica como criar um repositório Subversion e aceder ao projecto.
Os repositórios Subversion podem ser acedidos (verificados) através de vários métodos -- num disco local, ou utilizando vários protocolos de rede. No entanto a localização de um repositório é sempre um URL. A tabela refere como diferentes esquemas URL indicam deferentes métodos de acesso.
Tabela 13.1. Métodos de Acesso
Esquema |
Método de Acesso |
---|---|
file:// |
acesso directo ao repositório (no disco local) |
http:// |
Acesso via protocolo WebDAV a um servidor web Apache2 com Subversion |
https:// |
O mesmo que http://, mas com codificação SSL |
svn:// |
Acesso via protocolo personalizado a um servidor svnserve |
svn+ssh:// |
O mesmo que svn://, mas através de túnel SSH |
Nesta secção, veremos como configurar o Subversion para todos estes métodos de acesso. Aqui, cobrimos o básico. Para mais detalhes em utilizações avançadas, consulte o livro svn.
Este é o mais simples de todos os métodos de acesso. Não requere nenhum processo do Subversion a funcionar no servidor. Este método é utilizado para aceder ao Subversion na mesma máquina. A sintaxe do comando, executado num terminal, é a seguinte:
svn co file:///caminho/para/repositorio/projecto
ou
svn co file://nome_da_maquina/para/repositorio/projecto
![]() |
|
Se não especificar o nome da máquina existem três barras (///) - duas para o protocolo (neste caso file) mais uma para o caminho. Se indicar o nome da máquina deve utilizar duas barras (//). |
As permissões do repositório dependem das permissões do sistema de ficheiros. Se o utilizador tem permissão leitura/escrita, é possível efectuar as operações sáida e envio (“checkout” e “commit”) no repositório.
Para aceder ao repositório Subversion via protocolo WebDAV, deve configurar o seu servidor web Apache2. Terá de adicionar o seguinte no ficheiro /etc/apache2/apache2.conf
:
<Location /svn> DAV svn SVNPath /caminho/para/repositorio AuthType Basic AuthName "O nome do seu repositório" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
A seguir, deve criar o ficheiro /etc/subversion/passwd
. Este ficheiro contém as informações de autenticação dos utilizadores. Para adicionar uma entrada, isto é, adicionar um utilizador, deve executar o seguinte comando num terminal:
htpasswd2 /etc/subversion/passwd nome_do_utilizador
Este comando pedir-lhe-á para indicar uma palavra passe. Quando o fizer o utilizador será adicionado. Agora, para aceder ao repositório pode executar o seguinte comando:
svn co http://nome_do_servidor/svn
![]() |
|
A palavra passe é transmitida como texto simples. Se estiver preocupado com a pesquisa indevida de palavras passe, aconselhamos a utilizalção de codificação SSL. Para detalhes consulte a secção seguinte: |
Aceder ao repositório Subversion através do protocolo WebDAT com codificação SSL (https://) é semelhante ao http://, excepto que deve instalar e configurar um certificado difital no seu servidor web Apache2.
Pode instalar um certificado digital emitido por uma companhia creditada como a Verisign. Alternativamente, pode instalar o seu próprio certificado auto assinado.
Este passo assume que instalou e configurou um certificado digital no seu servidor web Apache2. Agora, para aceder ao repositório Subversion, consulte a secção acima! Os métodos de acesso são exactamente os mesmos, excepto o protocolo. Agora deve utilizar o https:// para aceder ao repositório Subversion.
Uma vez criado o repositório Subversion, pode configurar o controlo de acessos. Edite o ficheiro /path/to/repos/project/conf/svnserve.conf
para configurar o controlo de acessos. Por exemplo, para configurar a autenticação, pode retirar os comentários nas linhas seguintes do ficheiro de configuração:
# [general] # password-db = passwd
Depois de retirar os comentários nas linhas acima, pode gerir a lista de utilizadores no ficheiro passwd. Assim, edite o ficheiro passwd
no mesmo directório e adicione um novo utilizador. A sintaxe é a seguinte:
username = password
Para mais detalhes, consulte o ficheiro por favor.
Agora, para aceder ao Subversion via protocolo svn://, quer da mesma máquina ou de uma máquina diferente, pode executar o svnserver usando o comando svnserve. A sintaxe é a seguinte:
$ svnserve -d --foreground -r /caminho/para/repositorio # -d -- modo serviço # --foreground -- correr visível (útil para correcção de erros) # -r -- raiz do directório a disponibilizar Para mais detalhes sobre a utilização, por favor consulte: $ svnserve --help
Uma vez executado este comando, o Subversion começa a escutar no porto pré-definido (3690). Para aceder ao repositório do projecto, deve executar o comando seguinte num terminal:
svn co svn://nome_da_maquina/projecto projecto --username nome_do_utilizador
Dependendo da configuração, ele pede a palavra passe. Uma vez autenticado, ele verifica o código no repositório Subversion. Para sincronizar o repositório do projecto com a cópia local, pode executar num terminal o sub-comando update. A sintaxe é a seguinte:
cd project_dir ; svn update
Para mais detalhes acerca de cada subcomando do Subversion, pode consultar o manual. Por exemplo, para aprender mais sobre o comando co (do inglês checkout, verificar), por favor execute o comando seguinte num terminal:
svn co help
A configuração e o processamento do servidor são os mesmos que o do método svn:// . Para mais detalhes consulte a secção acima. Este passo assume que seguiu os passos acima e iniciou o servidor Subversion utilizando o comando svnserve.
Também é assumido que o servidor ssh está funcionar nessa máquina e que aceita ligações de entrada. Para confirmar, por favor tente entrar na máquina utilizando o ssh. Se conseguir entrar, está tudo bem. Se não conseguir, por favor verifique o servidor antes de continuar.
O protocolo svn+ssh:// é utilizado para aceder ao repositório Subversion utilizando codificação SSL. Os dados transferidos são codificados utilizando este método. Para aceder ao repositório do projecto (para efectuar, por exemplo, uma verificação), deve utilizar a seguinte sintaxe no comando:
svn co svn+ssh://nome_da_maquina/var/svn/repos/projecto
![]() |
|
Tem que indicar o caminho completo (/path/to/repos/project) para aceder ao repositório do Subversion utilizando este método. |
Dependendo da configuração, ele pede uma palavra passe. Tem que digitar a palavra passe que utiliza para iniciar a sessão via ssh. Uma vez autenticado, ele verifica o código no repositório Subversion.