Ottieni un errore 404 quando clone, tira il repository mercuriale
-
12-11-2019 - |
Domanda
Ho un repository qui http://repos.joomlaguruteam.com/
Sto usando hgweb.cgi questo è il mio file hgweb.config
[web]
baseurl =
#allowpull = true
allow_push = *
push_ssl = false
allow_archive = bz2 gz zip
[paths]
/ = /home/repos/*
Posso sfogliarlo ma non riesco a clonarlo. Ogni volta che lo clone ho questo errore
hg clone http://repos.joomlaguruteam.com/hello
destination directory: hello
requesting all changes
abort: HTTP Error 404: Not Found
E il registro di accesso ha quello
115.5.95.59 - - [10/Feb/2011:04:20:33 -0600] "GET /hello?pairs=0000000000000000000000000000000000000000-0000000000000000000000000000000000000000&cmd=between HTTP/1.1" 200 1 "-" "mercurial/proto-1.0"
115.5.95.59 - - [10/Feb/2011:04:20:34 -0600] "GET /hello?cmd=heads HTTP/1.1" 200 41 "-" "mercurial/proto-1.0"
115.5.95.59 - - [10/Feb/2011:04:20:34 -0600] "GET /hello?cmd=changegroup&roots=0000000000000000000000000000000000000000 HTTP/1.1" 404 597 "-" "mercurial/proto-1.0"
Ma posso clonarlo usando un trasferimento non compresso
hg clone --uncompressed http://repos.joomlaguruteam.com/hello
Ma ora non so come estrarre il repository, perché quando ci tiro da esso. Ha lo stesso problema come il clone. anche per in arrivo.
Ecco il mio file .htaccess
Options +ExecCGI
RewriteEngine On
#write base depending on where the base url lives
#RewriteBase /hg
RewriteRule ^$ hgweb.cgi [L]
# Send requests for files that exist to those files.
RewriteCond %{REQUEST_FILENAME} !-f
# Send requests for directories that exist to those directories.
RewriteCond %{REQUEST_FILENAME} !-d
# Send requests to hgweb.cgi, appending the rest of url.
RewriteRule (.*) hgweb.cgi/$1 [QSA,L]
Posso spingere Revison nel repository ma non riesco a tirarlo da esso.
C'è comunque per configurare questo o qualcosa per farlo funzionare.
Grazie mille per avermi aiutato.
Grazie, Yuan
Soluzione
Ok ho scoperto il problema.
Commenta la seguente riga in /home/my_username/.hgrc
#verbose = True
più dettaglio qui
Altri suggerimenti
Questo può sembrare ovvio, ma hai provato a rimuovere il #allowpull = true
linea nel tuo hgweb.config
file?
Domanda: stai eseguendo un HGWEB.CGI e aliasing tramite il tuo server web?
Se è così http: // url/ciao potrebbe effettivamente indicare http: //url/hgweb.cgi/hello E questo potrebbe essere il percorso che sta cercando. In genere si dispone di uno script CGI che serve l'interfaccia Web mercuriale.
Aggiorna la versione da mercuriale a lates
Prova a sostituire la sezione [percorsi] a
[collections] / = /home/repos [web] baseurl =
Aggiorna HGRC per tutti i tuoi repository
[web] allow_read = YOUR_USER1, YOUR_USER2 allow_push = YOUR_USER1 push_ssl = false
Ciò può accadere anche quando si ospita HGWEB in IIS e una richiesta di pull supera la lunghezza massima della stringa di query sul server. L'impostazione predefinita di 2048 byte può essere aumentato configurando il System.Webserver/Security/RequestFilters/RequestLIts sezione di configurazione.