Могу ли я отключить клонирование / вытягивание Mercurial через HTTP? - PullRequest
2 голосов
/ 19 октября 2010

Мы используем Mercurial на наших производственных серверах для некоторых небольших веб-проектов, чтобы легко развертывать приложения, передавая изменения на сервер через SSH.Репозитории находятся в папках public_html соответствующих учетных записей.

Теперь, если я сделаю

hg clone http://www.domain.com

, я получу

real URL is http://www.domain.com/
requesting all changes
adding changesets
adding manifests
transaction abort!
rollback completed
abort: empty or missing revlog for .htaccess

К счастью, клонирование не кажетсябыло бы возможно без аутентификации, но я бы предпочел, чтобы никто не знал, что в первую очередь доступен репозиторий hg.

Кто-нибудь знает способ полностью скрыть репозиторий Mercurial от общественности, даже если оннаходится в публичном месте, как public_html / htdocs на веб-сервере?Я не смог найти никакой информации о том, как этого добиться.

ETA: Видимо, у меня пока недостаточно репутации, чтобы голосовать за любые ответы.Но большое спасибо вам обоим за ваши полезные ответы.:)

Ответы [ 2 ]

3 голосов
/ 19 октября 2010

В репозитории .hg/hgrc добавьте это:

[web]
allowpull = false

Это приведет к их ошибке намного раньше в процессе, прежде чем они получат какие-либо данные (в настоящее время они получают много данных, если они хотятэто до отката).Обратите внимание, что allowpull не имеет подчеркивания, в отличие от большинства других многословных настроек Mercurial.

Это полностью предотвращает получение содержимого через Mercurial, но они все равно могут использовать wget, curl или веб-браузер для выбора http://www.domain.com/.hg/ вручную.

Чтобы избежать блокирования любого URL-адреса, содержащего /.hg/ на уровне веб-сервера.В Apache это будет выглядеть так:

<Directory "/your/doc/root/.hg">
  Order deny,allow
  deny from all
</Directory>
1 голос
/ 19 октября 2010

Вы можете

  • сделать каталог .hg недоступным для вашего веб-сервера
  • сделать .hg невидимым для магии .htacces (при условии, что вы используете apache httpd)
  • разместить репозитории вне public_html и заполнить public_html hg archive
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...