.htaccess: разрешить загрузку архива Mercurial, но только это - PullRequest
1 голос
/ 19 декабря 2009

Я был довольно счастлив с моей настройкой Mercurial до сих пор. Я использую его для личных проектов, и он размещается на общем сервере в OVH (французский хостинг-провайдер).

В настоящее время у меня есть .htaccess для защиты моих проектов и позволяю только определенным людям извлекать / выгружать из моих репозиториев. Тем не менее, я хотел бы сделать общедоступными архивы изменений.

URL выглядят так:

http://domain/hg/projectname/archive/486e5be13c82.tar.bz2
http://domain/hg/projectname/archive/tip.tar.bz2

Мой .htaccess выглядит так:

AuthUserFile /home/******/.hgusers
AuthName "Mercurial"
AuthType Basic

Order allow,deny
Allow from all

Require valid-user

И я хотел бы, чтобы в архиве были URL-адреса, чтобы не спрашивать имя пользователя / пароль. Я не против использовать mod_rewrite для этого. Спасибо!

Реми Гиллиг.

1 Ответ

1 голос
/ 19 декабря 2009

Если вы разрешите публичный доступ ко всем архивам изменений, то я предлагаю просто сделать хранилище общедоступным (очевидно, без разрешения push). Это довольно просто: hg push выполняется с POST HTTP-запросом, поэтому для этого вам нужно только Require valid-user. Смотрите также вики .

Я думаю, что, предоставляя людям доступ к архивам, вы фактически предоставляете им доступ ко всему хранилищу, за исключением сообщений фиксации. Таким образом, самое чистое решение - это просто признать это и ограничить hg push: -)

Помимо этой части желаемого совета, я предлагаю вам взглянуть на директивы <Location> и <LocationMatch>, если у вас есть доступ к системному файлу конфигурации для Apache (их нельзя положить в .htaccess файл). Я не большой гуру Apache, поэтому извините за то, что не дал вам готового правила, которое вы можете вставить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...