Como instalar o servidor subversion


8

Eu gostaria de instalar um servidor Subversion na minha máquina Ubuntu.
De quais pacotes eu preciso? Como crio um repositório e defino um novo usuário?


Dependendo de suas necessidades, você pode ser melhor com um SCM distribuído como o Bazaar (bzr), que é fácil de aprender vindo do Subversion, mas que não precisa de um servidor em execução. Isso é ótimo se você estiver trabalhando sozinho e precisar apenas de um log e rede de segurança. E eu apenas tenho que mencionar o git, que é a ferramenta mais poderosa existente, imho.
Martin Ueding 04/07/12

sudo apt-get install subversão
AMIC MING

Respostas:


10

Existem muitas configurações para o svn, aqui estão algumas breves instruções para obter um repositório básico do svn disponível em http.

  1. Instale os pacotes necessários: apt-get install subversion apache2 libapache2-svn
  2. Crie uma estrutura de diretório: mkdir -p /var/svn/repos/
  3. Crie um repositório:
    • cd /var/svn/repos/
    • svnadmin create --fs-type fsfs <your-repository>
  4. Agora crie seu Struckture de projeto para importar no repositório:
    • mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches
  5. Importe o projeto para o repositório:
    • svn import /tmp/myproject file:///var/svn/repos/<your-repository> -m "initial import"
  6. Torne acessível em http:
    • cd /etc/apache2/sites-available
    • touch subversion.conf
    • vim subversion.conf

Agora edite o arquivo vazio com esta configuração:

NameVirtualHost *:80

<VirtualHost *:80>   
  <Location /svn>
      ErrorDocument 404 default
      DAV svn
      SVNParentPath /var/svn/repos
      SVNListParentPath off
      Require valid-user
      AuthType Basic
      AuthName "subversion access"
      AuthUserFile /var/svn/.htpasswd
      AuthzSVNAccessFile /var/svn/authz 
  </Location>
</VirtualHost>
  • ative o módulo dav_svn para o apache: a2enmod dav_svn
  • ative o módulo authz_svn para o apache: a2enmod authz_svn
  • habilite a configuração do VHost: a2ensite subversion.conf
  • agora reinicie o servidor da web: /etc/init.d/apache2 restart
  • Crie um htpasswd: htpasswd -c /var/svn/.htpasswd user
  • Crie o arquivo de controle de acesso para o repositório: touch /var/svn/authz
  • edite o arquivo authz vazio: vim /var/svn/authz
  • Conceda direitos de leitura / gravação para o usuário:

[seu repositório: /]

usuário = rw

Vamos tentar fazer o checkout do repositório via http: svn checkout http://your-server/svn/your-repository


11
Não consigo editar, pois as alterações são muito pequenas, mas você poderia corrigir a última linha para dizer checkoutao contrário ceckout?
Nanofarad

Não consigo encontrar este pacote libapache2-svn. Erro: #Reading informações de estado ... E feito: Impossível localizar pacote libapache2-svn Sistema: Ubuntu 12.04 32 bits (todos os repositórios são activar)
shantanu

2
Você também precisa habilitar o módulo authz_svn, caso contrário você receberá Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration. Você pode usar o comando a2enmod authz_svnpara fazer isso.
mrswadge

2

Comece a ler o manual . Atualmente, estou fazendo o mesmo.

Depois de configurar um repositório svnadmin create /path/to/repo, você pode usá svnserve --root /path/to/repo-lo para disponibilizá-lo em svn://yourhost/. Abra a porta TCP 3690, se necessário.

É possível usar o SVN sobre HTTP, mas ainda não li essa parte:


2

Você precisará do subversionpacote.

sudo apt-get update
sudo apt-get install subversion

Este pacote contém o cliente, ferramentas para criar um repositório Subversion e o servidor.




0

Para instalar o subversion, abra um terminal e execute o seguinte comando:

sudo apt-get install subversion libapache2-svn

Vamos criar o repositório do subversion em / svn, embora você deva escolher um local que tenha uma boa quantidade de espaço.

sudo svnadmin create /svn

Mude o proprietário deste repositório para usuário do Apache.

sudo chown -R www-data:www-data /svn

Crie um repositório básico do subversion para uso posterior (em Production / QA / Testing / Stating ../ etc ..)

sudo mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches

Importe esses diretórios para o nosso repositório

sudo svn import /tmp/myproject file:///svn -m "initial import"

Em seguida, precisaremos editar o arquivo de configuração do módulo webdav do subversion. Você pode usar um editor diferente, se desejar.

sudo gedit /etc/apache2/mods-enabled/dav_svn.conf

O elemento Location no arquivo de configuração determina o diretório raiz de onde o subversion será acessível, por exemplo: http://www.server.com/svn

<Location /svn>

A linha DAV precisa ser descomentada para ativar o módulo dav

# Uncomment this to enable the repository,
DAV svn

A linha SVNPath deve ser definida no mesmo local em que você criou o repositório com o comando svnadmin.

# Set this to the path to your repository
SVNPath /svn

A próxima seção permitirá ativar a autenticação. Esta é apenas a autenticação básica, portanto, não a considere extremamente segura. O arquivo de senha estará localizado onde a configuração AuthUserFile o define como ... provavelmente é melhor deixá-lo no padrão.

# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd

Para criar um usuário no repositório, use o seguinte comando:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd <username>

Observe que você só deve usar a opção -c na primeira vez que criar um usuário. Depois disso, você desejará usar apenas a opção -m, que especifica a criptografia MD5 da senha, mas não recria o arquivo.

Exemplo:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd geek
New password:
Re-type new password:
Adding password for user geek

Reinicie o apache executando o seguinte comando:

sudo /etc/init.d/apache2 restart

Obrigado: http://www.howtogeek.com/howto/ubuntu/install-subversion-with-web-access-on-ubuntu/

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.