Tem conteúdo web estático e servidor Mercurial sob o mesmo URL

1

Estou procurando uma maneira de exibir conteúdo HTML estático usando um servidor da Web Apache 2 e, ao mesmo tempo, ter um repositório do Mercurial sob a mesma URL. Por exemplo. sob http://www.myserver.org/projectname deve haver o HTML do projeto disponível se navegado com um navegador da Web normal, mas deve ser possível clonar o repositório do Mercurial de projetos usando hg clone http://www.myserver.org/projectname . É basicamente o que o link tem. Eu acho que isso pode ser possível através da configuração do Apache para usar o script hgweb.cgi apenas para solicitações do Mercurial e não para a solicitação HTML GET normal. No entanto, eu não sei agora quais solicitações o Mercurial usa (espero que não seja o GET) e como configurar o Apache de acordo.

Um pouco mais de fundo:
Na necessidade isso para vários repositórios / projetos (atualmente ~ 2400). Até agora eu tentei hgweb como explicado em Repositórios de Publicação , que funciona bem para a visualização da web do repositório, mas não permite que eu mostre qualquer outra informação ao lado do autor, nome e descrição (de .hg/hgrc [web] section). A substituição de variáveis em hgweb é muito limitada e, portanto, não permite fornecer variáveis arbitrárias. Eu sei que eu poderia simplesmente ter as páginas HTML estáticas e hgweb em URLs diferentes, mas isso não atende às restrições dadas a mim.

    
por Martin Scharrer 07.10.2011 / 19:35

1 resposta

1

Para entender que tipo de solicitação enviamos o mercurial - temos o tcpdump perfeito.

Eu começo o tcpdump, clico do hg link

e veja que hg pede GET / hg? cmd = capacidades, / hg? cmd = getbundle, / hg? cmd = lote

Eu acho que você pode coletar todos os pedidos necessários para hg e configurar o apache (ou nginx, ou algum outro proxy) para encaminhar tais solicitações para hgweb.cgi

    
por 07.10.2011 / 22:01