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

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

На данный момент я настроил его как нормально, на странице хранилища появляется команда для его клонирования, а в конфигурации "хостинга" я установил его для чтения / записи в http (как вы можете видеть на изображениях ниже). Также я настроил diffusion.allow-http-auth к истине и тому 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://stackru.com/questions/22485732/git-repositories-that-allow-push-pull-over-http

2 ответа

Решение

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

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

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

Соответствующую задачу вы можете увидеть в задаче Phabricator T3046.

В Diffusion User Guide, Конфигурирование HTTP- части, вы можете увидеть некоторые упомянутые требования (которые не отражены в вашем описании)

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

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

Другие вопросы по тегам