Reescreva os URLs com o SVN

1

Atualmente tenho vários repositórios do svn configurados para uso por uma pequena coleção de pessoas. Atualmente, eles acessam o repositório de acordo com o seguinte padrão de URL: link Se eles tiverem vários pacotes (o que alguns, mas nem todos fazem), é: link e assim por diante.

Eu gostaria de remover o / svn / out do URL. Eu tentei usar RewriteRule e RedirectMatch no apache sem sucesso.

Este é o arquivo host virtual, antes de tentar alterar o URL:

<VirtualHost *:443>
  ServerAdmin [email protected]
  ServerName www.svn.example.com
  ServerAlias svn.example.com
  DocumentRoot /var/svn

  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/apache.pem
  SSLProtocol all
  SSLCipherSuite HIGH:MEDIUM

  <Location /var/svn/>
    DAV svn
    SVNParentPath /var/svn
    SVNListParentPath on
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /var/svn/svn-auth-file
    Require valid-user

  </Location>
  ErrorLog /var/log/apache2/error.log

  LogLevel warn

  CustomLog /var/log/apache2/access.log combined
  ServerSignature On

  </VirtualHost>

Alguma sugestão?

    
por aurora 23.01.2013 / 02:53

2 respostas

1

Prefácio

  1. A sua configuração escrita não reflete a configuração descrita : /svn caminho vs /var/svn/ localização
  2. Você config não deve funcionar (ou trabalhar com grandes problemas ): DocumentRoot == Localização == SVNParentPath, porque eles são a) não relacionados b) parâmetros diferentes

Quando você quer mudar o caminho para seus repositórios, você tem que reescrever apenas a definição de SVN-location, pode ser / no seu caso (e cuidado: a árvore não-WebDAV sob root terá problemas neste caso, se todos site é apenas repositórios é OK para root-location)

<Location /> é uma resposta curta à sua pergunta

    
por 23.01.2013 / 10:11
1

Suposição Você tem dois repositórios svn localizados em:

  1. / var / svn / repo1
  2. / var / svn / repo2

E assim URLs seria:

  1. link
  2. link

Requisito Para acessar PackageA de Project1 de repo1 usando URL:

http://svn.example.com/project1/PackageA

Solução provável

-<Location /var/svn/>
+<Location />
     DAV svn
    -SVNParentPath /var/svn
    +SVNPath /var/svn/repo1
    -SVNListParentPath on
     AuthType Basic
     AuthName "Subversion Repository"
     AuthUserFile /var/svn/svn-auth-file
     Require valid-user    
 </Location>

E reinicie o httpd.

    
por 23.01.2013 / 11:23