Настройка фабрикатора для разрешения отправки через http

Я хочу настроить Phabricator, чтобы я мог hg push через http.

На данный момент я настроил его как хорошо, на странице репозитория появляется команда для его клонирования, а в конфигурации «хостинга» я установил для него чтение/запись на http (как вы можете видеть на изображениях ниже). Также я настроил diffusion.allow-http-auth на true и VCS Password для своего пользователя.

Статус репозитория: все в порядке

Хостинг – сервер через HTTP: чтение/запись

Я правильно извлек из него и добавил изменения в этот локальный клон.

Но когда я пытаюсь нажать начальную историю/фиксацию, hg показывает следующую ошибку:

% hg push http://*********/diffusion/W/web/
pushing to http://*********/diffusion/W/web/
http authorization required
<--- Credentials Ok -->
realm: Phabricator Repositories
abort: operation not supported over http

Что я делаю неправильно? Http можно использовать только для вытягивания?

Примечание: я уже знаю, что лучше использовать ssh, но я не могу настроить сервер для использования его другими политиками, которые нельзя изменить. Кроме того, этот вопрос может быть связан с https://stackoverflow.com/questions/22485732/git-repositories-that-allow-push-pull-over-http


person PhoneixS    schedule 18.06.2014    source источник


Ответы (2)


В Руководстве пользователя Diffusion, часть Настройка HTTP, вы можете см. некоторые упомянутые требования (которые не отражены в вашем описании)

Если вы планируете использовать аутентифицированный HTTP, вам нужно установить диффузию.allow-http-auth в Config. Если вы не планируете использовать HTTP или планируете использовать только анонимный HTTP, вы можете оставить этот параметр отключенным.

Если вы планируете использовать аутентифицированный HTTP, вам также потребуется настроить пароль VCS в меню «Настройки» -> «Пароль VCS». Это пароль, отличный от вашего основного пароля Phabricator, прежде всего из соображений безопасности.

person Lazy Badger    schedule 18.06.2014
comment
Да, я уже сделал это (забыл упомянуть об этом в вопросе). Как я уже сказал в вопросе, я уже могу его клонировать. - person PhoneixS; 18.06.2014

На меня повлияло то, что версия Mercurial на сервере была слишком старой. Я обновил его до HG 3.0.1, и теперь я могу использовать http.

И из задачи в Phabricator вот что произошло с разными версиями mercurial:

  • Версии с 1.4 по 1.8 будут отклонять отправку с прерыванием: операция не поддерживается через http.
  • Версии с 1.9 по 2.1 принимают push.
  • Версия 2.2 выдает это сообщение об ошибке при попытке отправки (и содержимое не будет отправлено).
  • Версии с 2.3 по 3.0 принимают push.

Связанную задачу можно найти в задаче Phabricator T3046.

person PhoneixS    schedule 01.07.2014