O Guia Ultimate para configurar o Apache Subversão SVN e Tortoisesvn para Controle de Versão

O Guia Ultimate para configurar o Apache Subversão SVN e Tortoisesvn para Controle de Versão

Se o seu trabalho exigir documentos de manuseio, páginas da web e outros tipos de arquivos que são atualizados regularmente, convém usar um mecanismo de controle de versão se ainda não estiver fazendo isso.

Entre outras coisas, isso permite que você (e um grupo de colaboradores em potencial) rastreie as alterações feitas em um determinado arquivo e permite voltar a uma versão anterior se um problema for encontrado ou quando uma atualização não produzir o resultado esperado.

No ecossistema de software livre, o sistema de controle de versão mais usado é chamado Subversão Apache (ou Svn abreviado). Com a ajuda de mod_dav_svn (Módulo da Apache para Subversão), você pode acessar um repositório de subversão usando HTTP e um servidor da Web.

Dito isto, vamos enrolar nossas mangas e instalar essas ferramentas em um RHEL / CENTOS 7, Fedora 22-24, Debian 8/7 e Ubuntu 16.04-15.04 servidor. Para nossos testes, usaremos um CENTOS 7 servidor com IP 192.168.0.100.

No lado do cliente (um Windows 7 máquina), vamos instalar e usar Tortoisesvn (que é baseado na subversão Apache) como uma interface para SVN.

Nosso ambiente de teste

Servidor - CENTOS 7 Endereço de IP - 192.168.0.100 Cliente - Windows 7 

Etapa 1 - Instalando e configurando o SVN no Linux

Como acabamos de mencionar, confiaremos no Apache para acessar o repositório SVN usando uma interface da web. Se ainda não estiver instalado, adicione -o à lista de pacotes como mostrado abaixo:

------------------ No CentOS / Rhel / Fedora ------------------ # yum update && yum install mod_dav_svn subversão httpd -y ------------------ No Debian / Ubuntu ------------------ # atualização apt-get && install install libapache2-svn subversão apache2 -y 

Durante a instalação em CENTOS 7, Um arquivo de configuração do Apache para SVN será criado como /etc/httpd/conf.módulos.d/10 subversão.conf. Abra o arquivo e adicione o seguinte bloco de configuração:

/etc/httpd/conf.módulos.d/10 subversão.conf
 Dav Svn SvnparentPath/WebSRV/SVN Authtype Basic Authname "Welcome to SVN" AuthUserfile/etc/httpd/subversão-autores requer válido-usuário  
Configurar o módulo Apache SVN

Observação: Sobre Debian / Ubuntu você precisa adicionar linhas abaixo a /etc/apache2/mods-inabled/Dav_svn.conf arquivo.

/etc/apache2/mods-inabled/Dav_svn.conf
 Dav Svn SvnparentPath/WebSRV/SVN Authtype Basic Authname "Welcome to SVN" AuthUserFile/etc/apache2/subversão-Auth reque  

Sobre Debian / Ubuntu, você precisa ativar DAV_SVN APACHE módulo:

# a2enmod Dav_svn 

Alguns esclarecimentos:

  1. O Svnparentpath Diretiva indica o diretório onde nossos repositórios serão criados posteriormente. Se este diretório não existir (o que provavelmente é o caso), crie -o com:
    # mkdir -p /websrv /svn 

    É importante observar que este diretório não deve estar localizado dentro ou sobreposição, o Documentroot de um host virtual atualmente sendo servido por Apache. Este é um showstopper!

  2. O AuthUserfile A diretiva indica o arquivo onde as credenciais de um usuário válido serão armazenadas. Se você deseja permitir que todos acessem o SVN sem autenticação, remova as quatro últimas linhas no bloco de localização. Se for esse o caso, pule Passo 2 e vá diretamente para etapa 3.
  3. Embora você possa ser tentado a reiniciar o Apache para aplicar essas mudanças recentes, não faça isso ainda, pois ainda precisamos criar o arquivo de autenticação com usuários válidos para SVN, e o próprio repositório.

Etapa 2 - Adicione os usuários permitidos que acessem SVN

Nós agora usaremos htpasswd Para criar uma senha para contas que poderão acessar SVN. Somente para o primeiro usuário, precisaremos do -c opção.

Contas permitidas e senhas criptografadas de BCRYPT (-B) será armazenado em /etc/httpd/subversão-auth em pares de valor-chave. Observe que, pelos padrões de hoje, a criptografia padrão MD5 ou SHA usada por HTPasswd é considerada insegura.

------------------ No CentOS / Rhel / Fedora ------------------ # htpasswd -cb/etc/httpd/subversão -auth tecmint ------------------ No Debian / Ubuntu ------------------ # htpasswd -cb/etc/apache2/subversão -auth tecmint 

Não se esqueça de definir a propriedade e as permissões corretas para o arquivo de autenticação:

------------------ No CentOS / Rhel / Fedora ------------------ # chgrp apache/etc/httpd/subversion-auth # chmod 660/etc/httpd/subversão ------------------ No Debian / Ubuntu ------------------ # CHGRP www-data/etc/apache2/subversão-auth # chmod 660/etc/apache2/subversão-- 

Etapa 3 - Adicione a segurança e crie o repositório SVN

Como você estará acessando o SVN por meio de uma interface da web, você precisará permitir Http (e opcionalmente Https) Tráfego através do seu firewall.

------------------ No CentOS / Rhel / Fedora ------------------ # firewall-cmd --add-service = http --permanent # firewall-cmd --add-service = https --permanent # firewall-cmd--reload 

Recarregando a configuração do firewall com --recarregar, As configurações permanentes são colocadas em vigor imediatamente.

Crie um repositório SVN inicial chamado Tecmint:

# svnadmin create/websrv/svn/tecmint 

Altere o proprietário e o proprietário do grupo para apache recursivamente:

------------------ No CentOS / Rhel / Fedora ------------------ # CHOW ------------------ No Debian / Ubuntu ------------------ # CHOW 

Finalmente, você precisará alterar o contexto de segurança de /websrv/svn/tecmint (Observe que você terá que repetir esta etapa se decidir criar outros repositórios posteriormente):

------------------ No CentOS / Rhel / Fedora ------------------ # chcon -r -t httpd_sys_content_t/websrv/svn/tecmint/ # chcon -r -t httpd_sys_rw_content_t/websrv/svn/tecmint/ 

Observação: Os dois últimos comandos podem não se aplicar se você estiver instalando o SVN em um VPS com o Selinux desativado.

Leia sugerida: Aprenda a desativar o Selinux temporariamente ou permanentemente no Linux

Reiniciar Apache e verifique se o repositório está disponível.

------------------ No CentOS / Rhel / Fedora ------------------ # SystemCtl Reiniciar httpd ------------------ No Debian / Ubuntu ------------------ # SystemCtl Reiniciar Apache2 

Em seguida, inicie um navegador da web e aponte para http: // 192.168.0.100/svn/tecmint. Depois de inserir as credenciais para o usuário válido em que criamos Passo 1, A saída deve ser semelhante a:

Access SVN Repository via navegador

Neste ponto, não adicionamos nenhum código ao nosso repositório. Mas faremos isso em um minuto.

Etapa 4 - Instale o TortoiseSVN no cliente Windows 7

Como mencionamos na introdução, Tortoisesvn é uma interface amigável para a subversão Apache. É um software livre licenciado sob a GPL e pode ser baixado de https: // Tortoisesvn.rede/downloads.html.

Escolha a arquitetura (32 ou 64 bits) que corresponde à sua máquina e instale o programa antes de prosseguir.

Etapa 5 - Configurar o repositório SVN na máquina cliente

Nesta etapa, usaremos uma pasta chamada aplicativo web dentro Documentos. Esta pasta contém um arquivo html e duas pastas denominadas scripts e estilos com um JavaScript e um arquivo CSS (roteiro.JS e estilos.CSS, respectivamente) que queremos adicionar ao controle de versão.

Clique com o botão direito do mouse aplicativo web e escolha o checkout do SVN. Isso criará uma cópia local do repositório remoto (que está vazio no momento) e inicializará a pasta para controle da versão:

Configurar SVN no diretório do cliente

Em URL do repositório, tipo http: // 192.168.0.100/svn/tecmint E verifique se o diretório de check -out local permanece o mesmo e clique OK:

Configure o repositório SVN no cliente

Digite o nome de usuário e a senha (consulte Passo 2) e clique OK:

Digite credenciais do usuário do SVN

Você será perguntado se deseja fazer o checkout em um diretório não vazio. confirme Para prosseguir com o checkout. Uma vez concluído, uma marca de seleção verde aparecerá ao lado do nome da pasta:

Confira o diretório SVN

Etapa 6 - Confirmar alterações e implantar arquivos no repositório SVN remoto

Clique com o botão direito do mouse aplicativo web novamente e escolha Comprometer-se desta vez. Em seguida, escreva um comentário descritivo para identificar posteriormente esse compromisso e verifique os arquivos e pastas que deseja implantar para o repositório. Finalmente, clique OK:

Implantar arquivos no repositório SVN remoto

Dependendo do tamanho dos arquivos, a confirmação não deve levar mais de um minuto. Quando estiver completo, você verá que agora estamos ligados Revisão 1, que corresponde à versão e arquivos listados na interface da web:

Confirmar revisão do repositório SVN

Se houver várias pessoas trabalhando nos mesmos arquivos, você deseja Atualizar sua cópia local para ter a versão mais recente disponível para trabalhar. Você pode fazer isso clicando com o botão direito do mouse aplicativo web e escolhendo Atualizar Do menu de contexto.

Parabéns! Você configurou com sucesso um servidor SVN e cometeu / atualizou um projeto simples em controle de versão.

Resumo

Neste artigo, explicamos como instalar e configurar um Subversão Apache Servidor de repositório em um CENTOS 7 servidor e como cometer alterações nesse repositório usando Tortoisesvn.

Observe que há muito mais para Svn e Tortoisesvn do que o que podemos cobrir adequadamente aqui (especialmente como retornar às revisões anteriores); portanto, você pode querer consultar os documentos oficiais (svn e tartoisesvn) para obter mais informações e casos de configuração.

Como sempre, não hesite em nos informar se você tiver alguma dúvida! Sinta -se à vontade para usar o formulário de comentário abaixo para chegar a nós a qualquer hora.