link mercurial repo para servidor web

1

Eu tenho a seguinte situação:

Na mesma máquina eu tenho um servidor mercurial e um servidor web. O repositório do projeto está localizado em / var / hg / repos / myproyect e os arquivos públicos do servidor web estão em / usr / share / nginx / www

Existe alguma maneira de vincular (ln) o diretório repo ao servidor de caminho público? quando eu faço

ln /var/hg/repos/myproject/.hg/store/data/ /ush/share/nginx/www/myproject

e eu coloco no navegador link não é mostrado nada

Eu notei que os dados da loja em .hg terminam em extensão .i

    
por papelucho 29.04.2013 / 17:52

1 resposta

2

Você deve certamente configurar o hgweb para servir o repositório em vez de descarregar os arquivos brutos.

Publishing Repositories e HGWeb Step-by-Step artigos wiki aborda isso em profundidade, mas aqui estão os destaques:

  1. Crie um arquivo hgweb.conf (geralmente em /usr/local/etc/ ou algo virtual dependente de host em ambientes com vários usuários).

    [paths]
    myproject = /var/hg/repos/myproject
    
    [web]
    allow_archive = gz
    contact = Some Name <[email protected]>
    
  2. Copie o arquivo hgweb.cgi do diretório de instalação para o diretório cgi-bin. Mais provável que não: cp /usr/share/mercurial/www/hgweb.cgi /var/www/cgi-bin/ (Você começa a idéia de qualquer maneira).

  3. Edite o arquivo hgweb.cgi, defina a localização do arquivo de configuração de # 1.
  4. Configure o nginx para o fcgi:

    location /hg/ {
        fastcgi_pass    127.0.0.1:9000;
        include         fastcgi_hg;
        fastcgi_intercept_errors    off;
    
        limit_except GET HEAD {
            auth_basic  'Example';
            auth_basic_user_file /srv/hg.htpasswd;
        }
    }
    
  5. Configure o fcgi include ( fastcgi_hg ) para hg:

    include fastcgi_params;
    fastcgi_split_path_info ^(/hg)(.*)$;
    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
    fastcgi_param  PATH_INFO          $fastcgi_path_info;
    fastcgi_param  AUTH_USER          $remote_user;
    fastcgi_param  REMOTE_USER        $remote_user;
    
  6. Reinicie o nginx e o Bob é seu tio!
por 29.04.2013 / 18:09