Получите ошибку 404 при клонировании, потяните репозиторий mercurial

У меня есть репозиторий здесь 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]

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

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

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

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


person Yuan Chen    schedule 11.02.2011    source источник
comment
@Damiel Прочтите FAQ (где говорится о программных инструментах, обычно используемых программистами) и множество вопросов, не связанных с программированием, которые задают о VCS и IDE.   -  person TheLQ    schedule 12.02.2011
comment
Как выглядит ваш .htaccess?   -  person TheLQ    schedule 12.02.2011
comment
Привет @TheLQ, я добавил свой файл .htaccess к вопросу   -  person Yuan Chen    schedule 12.02.2011


Ответы (5)


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

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

#verbose = True

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

person Yuan Chen    schedule 11.02.2011
comment
Было бы удивительно скопировать соответствующую часть ссылки на ответ, так как она уже мертва... - person m-dz; 25.07.2018

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

person hipyhop    schedule 13.02.2011
comment
На самом деле опция allowpull по умолчанию имеет значение true. - person Valery Viktorovsky; 13.02.2011
comment
Привет @splattne и @TomFluff, проблема в файле /home/my_username/.hgrc. закомментируйте эту строку #verbose = True. подробнее здесь - person Yuan Chen; 14.02.2011

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

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

person Tyler Smith    schedule 11.02.2011
comment
Кроме того, если ваша работа или где бы вы ни находились, похожа на мою, у них могут быть подобные вещи, заблокированные для внешних местоположений C:\hello›hg clone repos.joomlaguruteam.com/hello abort: ошибка: не удалось установить соединение, поскольку целевая машина активно отклоняла его - person Tyler Smith; 11.02.2011
comment
Да, для этого я использую hgweb.cgi и .htaccess. - person Yuan Chen; 11.02.2011
comment
это неправда, потому что вы можете использовать несжатую передачу для его клонирования. Также вы можете нажать на репозиторий. - person Yuan Chen; 11.02.2011

  1. обновить меркуриал до последней версии

  2. попробуйте заменить раздел [paths] на

    [collections]
    / = /home/repos
    
    [web]
    baseurl =
    
  3. обновить hgrc для всех ваших репозиториев

    [web]
    allow_read = YOUR_USER1, YOUR_USER2
    allow_push = YOUR_USER1
    push_ssl = false
    
person Valery Viktorovsky    schedule 13.02.2011
comment
Каков синтаксис [коллекции] в Windows? - person Geoffrey; 18.02.2011

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

person Chris Eldredge    schedule 22.12.2011