Subversion é um sistema de rastreamento de versão de código aberto. Ele mantém os arquivos em um repositório central e fornece controle de versão sobre diretórios ou arquivos. Como desenvolvedor, você pode extrair arquivos de projeto de um repositório, fazer alterações neles e enviá-los novamente.
O Subversion também possui um componente de servidor que você pode usar para hospedar seus projetos. Funciona como um servidor de arquivos comum.
Como instalar o Subversion
O Subversion é simples de instalar. Você pode usar o comando apropriado para sua distribuição começar:
#Debian, Ubuntu
sudo apt instalar subversão apache2 libapache2-mod-svn
# CentOS, Fedora, RHEL
sudo dnf instalar subversão apache2 mod_dav_svn
Observe que este comando também instala o servidor web Apache2. Você precisará de um servidor web se quiser acessar o repositório Subversion via HTTP ou WebDAV. Você também pode usar HTTPS, basta instalar e configurar um certificado digital para isso.
Depois de executar este comando, você pode verificar se o subversion está instalado corretamente. Agora você deve ser capaz de executar o
svn comando e você pode ver a versão atual usando o --versão opção:Configuração do Servidor com Subversion
Se a instalação ocorreu sem problemas, agora você pode começar a trabalhar na configuração do repositório que usará com svn. Claro, você precisará criar um novo repositório para isso. Primeiro, crie uma pasta em um diretório raiz para colocar seu repositório:
sudo mkdir /subversion
Se você precisar acessar seu repositório usando WebDAV sobre HTTP, precisará dar ao Apache a propriedade de seu diretório. Como o Apache usa www-dados usuário por padrão, autorize este usuário da seguinte forma:
sudo chown www-data: www-data /subversion
Agora você pode alternar para o www-dados user e comece a trabalhar em seu repositório. O comando que você usaria para fazer login como o www-dados usuário é:
sudo su -s /bin/bash www-data
Você agora é um usuário do Apache e após esta etapa, você pode criar seu repositório Subversion da seguinte forma:
svnadmin crio /subversion/myrepo
Agora você tem um repositório Subversion. Para tornar este repositório um pouco mais seguro e identificar seus usuários, o próximo passo é criar um usuário e definir uma senha para ele. Para fazer isso, use o seguinte comando:
htpasswd -cmb /subversion/passwd myadmin mypass
De acordo com este comando, seu nome de usuário será meuadmin e sua senha será meu passe. Você pode alterar esses valores para o que for apropriado para suas circunstâncias.
Seu repositório Subversion agora está pronto para uso. Nesta fase, você pode sair do www-dados usuário usando o saída comando.
Agora você pode enviar um projeto ou arquivo desejado para seu repositório usando o comando abaixo:
sudo svn importação <endereço do seu projeto> file:///subversion/myrepo -m "Primeiro Compromisso"
Este comando usa o importar parâmetro para enviar tudo na pasta do seu projeto para o seu repositório Subversion. Ao fazer isso, você precisa adicionar a mensagem de confirmação com o -m parâmetro.
Usando métodos de acesso no Subversion
Você deve ter notado que está usando o Arquivo:// protocolo para adicionar um projeto ao seu repositório. Este é apenas um dos vários protocolos de rede que você pode usar para acessar um repositório svn. Você também pode usar o protocolo WebDAV sobre HTTP ou HTTPS, ou personalizado do subversion svn protocolo.
Acesso direto ao repositório
Como você viu, você pode usar o Arquivo:// protocolo para acessar um repositório local. Veja como você pode fazer o checkout de um repositório local para seu diretório atual:
svn co arquivo:///subversion/myrepo
Quando você verifica o repositório, o svn exibe uma lista dos arquivos que ele contém:
Acessando usando WebDAV
Para integrar seu repositório Subversion com o Apache, você precisará definir algumas configurações.
Para o primeiro passo, ative o dav, dav_svn, e dav_fs módulos usando os seguintes comandos:
sudo a2enmod dav dav_fs dav_svn
Depois de ativar os módulos necessários, agora você pode editar o /etc/apache2/mods-enabled/dav_svn.conf Arquivo. Crie o arquivo se ele ainda não existir e altere seu conteúdo da seguinte forma:
<Localização/subversão>
svn DAV
SVNPath /subversion/myrepo
Tipo de autenticação básico
AuthName "Repositório Subversion"
AuthUserFile /subversion/passwd
Exigir usuário válido
</Location>
o AuthUserFile A configuração faz referência ao arquivo que você criou anteriormente usando htpasswd. Adicioná-lo aqui concederá acesso ao repositório a todos os usuários nomeados no arquivo, desde que se autentiquem com uma senha válida.
Depois de criar e salvar esse arquivo, reinicie o serviço Apache2 com o seguinte comando:
sudosystemctlreiniciarapache2.serviço
Agora, quando você abre um navegador da Web e vai para http://localhost/subversion/, você verá o conteúdo do seu repositório. Quando você for para este endereço, ele solicitará seu nome de usuário e senha:
Faça login com o nome de usuário (por exemplo, meuadmin) e senha (meu passe) que você configurou anteriormente. Você pode acessar seu repositório Subversion usando WebDAV após inserir o nome de usuário e a senha:
Acessando com SSL e WebDAV
o https:// protocolo tem quase a mesma configuração que o http:// protocolo, com apenas algumas diferenças importantes. Para dar um exemplo, o .conf arquivo que você precisa usar durante a configuração é diferente. Você também precisa instalar um certificado digital. Porque, como sabem, esta é a lógica de funcionamento do Método de criptografia SSL.
Você pode criar um certificado digital você mesmo, ou você pode instalar um emitido por uma autoridade competente. Supondo que você tenha instalado um certificado digital, o que você precisa fazer é simples.
A diferença nesta etapa são as alterações que você fará no arquivo de configuração. Abaixo está um arquivo de configuração de amostra para uso de SSL e WebDAV:
<Localização/subversão>
DAV ligado
SSLRequer SSL
Opções Nenhum
Tipo de autenticação básico
AuthName "Repositório Subversion"
AuthUserFile /subversion/passwd
Exigir usuário válido
</Location>
Como você pode ver, a diferença entre https:// e http:// protocolos não é muito em termos de mudanças no arquivo de configuração. Após essas alterações, você precisará reiniciar o apache2 serviço. Corre systemctl reinicie o apache2.service fazer isso.
Por que usar o Subversion?
Como um rastreador de versão, o Subversion se lembra de todas as alterações feitas em arquivos e diretórios. Ele permite que você acesse versões antigas de software ou documentos com os quais está trabalhando e encontre suas diferenças. Isso facilita o gerenciamento de projetos, especialmente se sua equipe de desenvolvimento for grande ou distribuída.
Existem muitos sistemas de controle de versão para Linux além do Subversion, que você pode considerar.