Use o WebSVN como visualização HTML padrão

4

Ao abrir um URL de subversão como link usando um navegador normal, recebo uma página da Web (não muito boa, mas útil) que mostra arquivos da maior revisão do repositório.

É possível alterar essa exibição HTML para usar o WebSVN? Então eu quero usar a mesma URL para o TortoiseSVN que então navega no repositório usando o WebDAV e para navegar nele com um web browser que está obtendo a interface do WebSVN.

Estou usando o Apache 2.2 em um servidor Win 2003 com mod_dav_svn.

Agradecemos antecipadamente por qualquer ajuda.

sc911

    
por sc911 24.02.2010 / 12:02

3 respostas

2

Que tal usar o mod_rewrite? Você poderia fazer algo assim: -

RewriteCond %{HTTP_USER_AGENT}          !^SVN.*
RewriteRule ^/svn/(.*?)(/.*)$           http://websvn.host/websvn/listing.php?repname=$1&path=$2      [R]

Isso deve redirecionar qualquer cliente que não tenha uma sequência User Agent começando com 'SVN /' para uma instalação do WebSVN no link e deixar consultas apenas de clientes SVN.

    
por 25.02.2010 / 01:18
1

Eu também tentei fazê-lo funcionar assim, mas não acho que seja possível. De acordo com o site , o mod_dav_svn gera a página html que você vê, e ela só suporta o uso de skin simples usando xslt.

O que fiz foi usar um novo host virtual para o meu conteúdo WebSVN (por exemplo, link ).

    
por 24.02.2010 / 13:25
1

Resolveu com o mod_rewrite como Andy sugeriu. Estou usando este conjunto de regras agora

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^SVN.*
RewriteRule (.*) - [S=3] 
RewriteRule ^svn$ /svn/ [R,N]
RewriteRule ^svn/$ /websvn/ [R,L]
RewriteRule ^svn/(.*?)(/.*)$ /websvn/listing.php?repname=$1&path=$2 [R,L]

Isto verifica o User-Agent para iniciar com o SVN (é assim que o Tortoise se identifica) e então pula as próximas três regras.

Essas três regras estão fazendo o seguinte:

  • adicione a barra final ao svn-URL (não feito automaticamente porque o svn não é um diretório)
  • redireciona o acesso direto para a lista de repositórios
  • redirecionar visualização direta do repositório

Tudo isso é feito no <Directory> -diretivo do RootDir.

Obrigado Andy por essa dica!

sc911

    
por 25.02.2010 / 15:04