Mercurial / Redmine - ошибка 404 при доступе к репозиторию - PullRequest
1 голос
/ 11 января 2012

Надеюсь, это быстрое исправление для опытных!

Я только что закончил установку Mercurial и Redmine на свой общий сервер hostgator в раздел документации Redmine и Mercurial, но столкнулся с небольшой проблемой,Mercurial прекрасно работает, я смог создать репо, клонировать его и синхронизировать с ним без каких-либо проблем, кроме случаев, когда я добавляю репозиторий в Redmine и перехожу на вкладку репозитория, я получаю ошибку 404.Я удостоверился, что перепроверил, что я установил каталог, начинающийся с корня, и это не работало.Я попробовал несколько разных способов выписать каталог, но все же не повезло.Я закончил тем, что открыл свой файл production.log, и эта запись пишется каждый раз, когда я получаю ошибку 404.

Processing RepositoriesController#show (for 74.56.***.*** at 2012-01-10 13:59:43) [GET]
  Parameters: {"action"=>"show", "id"=>"testhg1", "controller"=>"repositories"}
hg: error during getting info: hg exited with non-zero status: 255
hg: error during getting info: hg exited with non-zero status: 255
Rendering template within layouts/base
Rendering common/error (404)
Completed in 280ms (View: 12, DB: 2) | 404 Not Found [http://redmine.mydomain.org/projects/testhg1/repository]

Любая помощь по этому вопросу будет принята с благодарностью!Спасибо!

Ответы [ 2 ]

2 голосов
/ 14 ноября 2012

Мы столкнулись с той же ошибкой на сервере Centos 6.3.В нашем случае мы также получали следующую ошибку в /var/log/httpd/error_log:

abort: requirement 'dotencode' not supported!

Мы создавали наши репозитории с использованием RhodeCode, который использовал гораздо более новую версию mercurial (2.3.2), чем та, котораяпоставляется с CentOS 6.3 (1.4).Обновление версии Mercurial в системе с использованием предварительно собранного RPM из repoforge решило проблему.Чрезвычайно старая версия mercurial, доступная от yum на CentOS, не поддерживала возможность dotencode, которую использовал более новый 2.3.2 Mercurial.

0 голосов
/ 16 марта 2012

Перешел в режим разработки, чтобы улучшить ведение журнала:

Processing RepositoriesController#show (for ***.***.***.*** at 2012-03-15 22:54:47) [GET]
  Parameters: {"action"=>"show", "id"=>"go", "controller"=>"repositories"}
  Setting Columns (0.9ms)   SHOW FIELDS FROM `settings`

... more unimportant queries ...

  Repository::Mercurial Columns (0.7ms)   SHOW FIELDS FROM `repositories`
Shelling out: '/usr/bin/hg' '-R' '/var/lib/hg/godc' '--encoding' 'utf-8' '--config' 'extensions.redminehelper=/var/www/corp/redmine/lib/redmine/scm/adapters/mercurial/redminehelper.py' '--config' 'diff.git=false' 'rhsummary'
hg: error during getting info: hg exited with non-zero status: 255
Shelling out: '/usr/bin/hg' '-R' '/var/lib/hg/godc' '--encoding' 'utf-8' '--config' 'extensions.redminehelper=/var/www/corp/redmine/lib/redmine/scm/adapters/mercurial/redminehelper.py' '--config' 'diff.git=false' 'rhmanifest' '-r' 'tip' ''
Rendering template within layouts/base
Rendering common/error (404)

так что, похоже, ошибка в этой команде:

'/usr/bin/hg' '-R' '/var/lib/hg/godc' '--encoding' 'utf-8' '--config' 'extensions.redminehelper=/var/www/corp/redmine/lib/redmine/scm/adapters/mercurial/redminehelper.py' '--config' 'diff.git=false' 'rhsummary'

, который отлично работает, когда я запускаю от имени root

root@redacted:/var/www/corp/redmine# '/usr/bin/hg' '-R' '/var/lib/hg/godc' '--encoding' 'utf-8' '--config' 'extensions.redminehelper=/var/www/corp/redmine/lib/redmine/scm/adapters/mercurial/redminehelper.py' '--config' 'diff.git=false' 'rhsummary'

... returns XML that S. O. doesn't want to show ...
(if you know how to fix this, please edit)







но мой веб-сервер работает как www-data, у которого нет доступа к hg dir

root@redacted:/var/www/corp/redmine# sudo su - www-data
$ '/usr/bin/hg' '-R' '/var/lib/hg/godc' '--encoding' 'utf-8' '--config' 'extensions.redminehelper=/var/www/corp/redmine/lib/redmine/scm/adapters/mercurial/redminehelper.py' '--config' 'diff.git=false' 'rhsummary'
abort: repository /var/lib/hg/godc not found!
$ ls -l /var/lib/hg
ls: cannot open directory /var/lib/hg: Permission denied
$

предоставьте моему пользователю www-data доступ к репо, и команда теперь работает:

$ groups
www-data hg
$ '/usr/bin/hg' '-R' '/var/lib/hg/godc' '--encoding' 'utf-8' '--config' 'extensions.redminehelper=/var/www/corp/redmine/lib/redmine/scm/adapters/mercurial/redminehelper.py' '--config' 'diff.git=false' 'rhsummary'

... returns XML that S. O. doesn't want to show ...








$

Протестировал его на Redmine и все равно получил ошибку, но когда я перезапустил Apache, все было так, как должно быть.

(я использую пассажира фьюжн.)

Обновление оказалось красной селедкой, фактическая причина, по которой это произошло, - это переход от работы со сценарием / сервером от имени моего пользователя (у которого был доступ к репо) к запуску в качестве правильно установленного экземпляра производства phusion passenger.

В вашем случае, когда вы устанавливаете общий сервер hostgator за $ 7 / месяц, я уверен, что у вас нет доступа для изменения разрешений, но вы можете по крайней мере использовать описанный мной процесс, чтобы попытаться определить проблему. Я не знаю много об установке hostgator, но похоже, что у вас может быть та же проблема.

...