hgweb без веб-интерфейса - PullRequest
       18

hgweb без веб-интерфейса

1 голос
/ 15 ноября 2011

Это может показаться глупой идеей, но в любом случае можно ли использовать ртутный репозиторий по протоколу http без каких-либо функций веб-интерфейса, связанных с hgweb.cgi.

Я бы хотел, чтобы пользователи могли клонировать / проталкивать репозиторий по http: //, но я не хочу, чтобы они могли просматривать репозитории или файлы через веб-интерфейс.

Статический HTTP является опцией, но официальные документы по Mercurial утверждают, что это очень медленно.

Если это не тривиально, кто-нибудь знает пример кода, который служит хранилищем hg через http, предпочтительно без какой-либо поддержки интерфейса браузера?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

Я быстро проверил файлы hgweb и обнаружил:

Найдите файл hgweb/webcommands.py вашей установки Mercurial и откройте его в редакторе. Измените следующий код в верхней части файла:

__all__ = [
   'log', 'rawfile', 'file', 'changelog', 'shortlog', 'changeset', 'rev',
   'manifest', 'tags', 'bookmarks', 'branches', 'summary', 'filediff', 'diff',
   'annotate', 'filelog', 'archive', 'static', 'graph', 'help',
]

к этому:

__all__ = [
]

Это отключает все веб-команды; Вы все еще можете просматривать список репозиториев, но больше не можете узнать о них.

Я проверил hg clone и hg pull, но не hg push.

0 голосов
/ 15 ноября 2011

Я не знаю, почему вы хотите ограничить доступ к части пользовательского интерфейса, поскольку любая информация, представленная здесь, доступна, если они могут получить доступ к файлам, но так и будет: P

Если вам нужно какое-то чистое решениеЯ думаю, что взять код hgweb.cgi и переписать его не будет слишком сложно, но я думаю, что вы также можете сделать что-то быстрее: hg serve -t /dev/null

Это будет использовать /dev/null в качестве шаблона дляЧасть пользовательского интерфейса, поэтому пользователи получат страницу «Внутренняя ошибка сервера» при подключении к серверу, но смогут нормально получать доступ к хранилищу через hg.

Только нижняя сторона, журнал будет полем сошибки, если есть доступ через браузер.

PS: если вы не в системе Unix, просто используйте любой пустой каталог в качестве источника для шаблонов.

...