Настройка фабрикатора, чтобы разрешить проталкивание через http
Я хочу настроить Phabricator, чтобы я мог hg push over http.
На данный момент я настроил его как нормально, на странице хранилища появляется команда для его клонирования, а в конфигурации "хостинга" я установил его для чтения / записи в http (как вы можете видеть на изображениях ниже). Также я настроил diffusion.allow-http-auth
к истине и тому VCS Password
для моего пользователя.
Я правильно вытащил его и добавил изменения в этот локальный клон.
Но когда я пытаюсь выдвинуть исходную историю / коммит, 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, в основном из соображений безопасности.