2010-03-23 2 views
18

У меня есть репозиторий Mercurial, который я вижу очень хорошо, если я перехожу к нему в браузере, но когда я пытаюсь сделать push, с моим путём по умолчанию, установленным на тот же URL-адрес, который я посещаю в браузере, я получаю это :Mercurial: Почему я получаю ошибку 404 при нажатии в репозиторий, чей URL-адрес я могу получить в браузере?

abort: HTTP Error 404: Not Found 

Должен ли URL-адрес, который я нажимаю, чтобы быть каким-то другим?

+0

См. Также: http://stackoverflow.com/questions/3068627/mercurial-client-error-255-and-http-error-404-when-attempting-to-push-large-file –

ответ

5

Это похоже на this configuration, где hgweb.config должны быть настроены правильно:

/ = /home/my_username/hg/** 

(с двумя звездами в то конец)

Или это http vs. https issue?

Для https вам нужен correct .hgrc file, иначе вы также можете получить ошибку 404.
См. .hg/hgrc file man page.

[ui] 

username = [email protected] 

password = mypassword 

schemes = https 

[paths] 

default = https://myURL.kilnhg.com/Repo/Repositories/Groups/myrepo 
+1

Это не было второй, поскольку попытка, похоже, не помогла. Где я должен иметь файл hgweb.config?Я не мог найти, где этот файл должен существовать в Windows (7). –

+1

@Mike: 'hgweb.config' будет на стороне сервера: если у вас нет доступа к нему, мы можем только предположить, что это правильно, и что ваши учетные данные/схема доступа как-то ошибочны. – VonC

+0

Я не знаю, было ли это именно так, но определенно это было на стороне сервера. –

2

У меня была такая же проблема, и в конечном итоге это были VERB, разрешенные для обработчика CGI. Я ограничил его GET, POST и HEAD, но в конечном итоге изменил его, чтобы разрешить все, и теперь он отлично работает.

12

Мы неожиданно начали получать эту ошибку в нашем основном репозитории Mercurial, размещенном под IIS в Windows 2008. When your repository has too many heads, строки запросов Mercurial POSTs дольше, чем IIS выбирает для обработки.

Вы можете сказать, просмотрев код подфайла неудавшегося запроса в журналах IIS (обычно это номер после нормального кода состояния HTTP). В этой ситуации IIS возвращает a sub-status of 15, что означает, что строка запроса слишком длинная. Не забудьте проверить свои коды под-статусов!

Чтобы устранить проблему, you'll need to increase IIS's maxiumum query string length:

# Get the current query string size limit 
c:\windows\system32\inetsrv\appcmd list config /section:requestFiltering -text:requestLimits.maxQueryString 

# Set the new query string size limit 
c:\windows\system32\inetsrv\appcmd set config /section:requestFiltering /requestLimits.maxQueryString:<NEW SIZE> 
+0

Полезно знать! – shambulator

+0

Ничего, это смутило меня на несколько часов – redsquare

+1

У нас была эта точная проблема, и ваш ответ исправил ее, огромное спасибо! Для тех, у кого может возникнуть проблема с определением, происходит ли это с ними, - найдите строку «404 15» в своих журналах IIS, если вы найдете ее после LONG querystring, тогда этот ответ тоже вам поможет. –

12

"содержание слишком большой" является то, что я имел. Перейдите в журналы IIS и найдите «404 13».

Чтобы исправить это, в диспетчере IIS выберите параметр «Фильтрация запросов», а затем выберите вкладку «Заголовки».

Затем перейдите в «Редактировать настройки функций» справа. Затем выберите действительно большое количество для поля «Максимально допустимый контент (байты)».

Это исправило мою проблему.

1

Я получил эту ошибку, пытаясь натолкнуть много наборов изменений, с особенно крупным размером со многими бинарными файлами (обновление jpg на веб-сайте). [jpg под контролем источника, в том же репо, что и источник, возможно, не лучший подход, но это не относится к делу.]

В таком случае, если у вас нет доступа к конфигурации IIS, работа -around - нажимать меньшее количество наборов изменений за раз. В TortoiseHg используйте функцию «Исходящие», щелкните правой кнопкой мыши верхний набор изменений поднабора, который вы хотите нажать, и выберите «Нажать сюда». Повторение.

 Смежные вопросы

  • Нет связанных вопросов^_^