Получить 404 Ошибка при клонировании, вытащить ртутный репозиторий - PullRequest
5 голосов
/ 11 февраля 2011

У меня здесь есть хранилище http://repos.joomlaguruteam.com/

Я использую hgweb.cgi Это мой файл hgweb.config

[web]
baseurl = 
#allowpull = true
allow_push = *
push_ssl = false
allow_archive = bz2 gz zip

[paths]
/ = /home/repos/*

Я могу просмотреть его, но не могу его клонировать,Каждый раз, когда я клонирую его, у меня появляется эта ошибка

hg clone http://repos.joomlaguruteam.com/hello
destination directory: hello
requesting all changes
abort: HTTP Error 404: Not Found

, а в журнале доступа это

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"

Но я могу клонировать ее, используя несжатый перенос

hg clone --uncompressed http://repos.joomlaguruteam.com/hello

Но сейчас я не знаю, как вытащить из хранилища, потому что, когда я вытащить из него.у него та же проблема, что и у клона.также для входящих.

Вот мой файл .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]

Я могу отправить ревизию в репозиторий, но не могу вытащить ее.

Есть ли в любом случаенастроить это или что-то, чтобы заставить его работать.

Большое спасибо за помощь.

Спасибо, Юань

Ответы [ 5 ]

4 голосов
/ 11 февраля 2011

ОК. Я обнаружил проблему.

закомментируйте следующую строку в /home/my_username/.hgrc

#verbose = True

подробнее здесь

1 голос
/ 13 февраля 2011

Это может показаться очевидным, но вы пытались раскомментировать строку #allowpull = true в файле hgweb.config?

0 голосов
/ 23 декабря 2011

Это также может произойти, когда вы размещаете hgweb в IIS, и запрос на получение данных превышает максимальную длину строки запроса на сервере. Значение по умолчанию в 2048 байт можно увеличить, настроив раздел конфигурации system.webServer / security / requestFilters / requestLimits .

0 голосов
/ 13 февраля 2011
  1. обновить Mercurial до последней версии

  2. попытаться заменить секцию [paths] на

    [collections]
    / = /home/repos
    
    [web]
    baseurl =
    
  3. updatehgrc для всех ваших репо

    [web]
    allow_read = YOUR_USER1, YOUR_USER2
    allow_push = YOUR_USER1
    push_ssl = false
    
0 голосов
/ 11 февраля 2011

Вопрос: вы запускаете hgweb.cgi и создаете псевдонимы через ваш веб-сервер?

Если это так, http://url/hello может фактически указывать на http://url/hgweb.cgi/hello, и это может быть путь, который он ищет. Обычно у вас есть скрипт cgi, обслуживающий веб-интерфейс Mercurial.

...