2013-03-11 2 views
0

У меня есть рабочий процесс, где я должен позволить пользователям получать новые изменения из размещенного в Apache хранилища Mercurial, но не позволяет им делать новый клон.Разрешить вытащить репозиторий, но блокировать клонирование для обслуживаемого репозитория Apache

Любые идеи о том, как это можно сделать?

Благодаря

  • Использование hgweb.wsgi служить хранилище, используя апачский виртуальный хост (обходные принято)

ответ

1

Проще всего было бы просто опубликовать пакеты через регулярный HTTP и позволяют пользователям загружать и применять их. См hg help bundle:

Generate a compressed changegroup file collecting changesets not known to 
be in another repository. 

The bundle file can then be transferred using conventional means and 
applied to another repository with the unbundle or pull command. This is 
useful when direct push and pull are not available or when exporting an 
entire repository is undesirable. 

Applying bundles preserves all changeset contents including permissions, 
copy/rename information, and revision history. 
+0

Не может ли это также позволить пользователю эффективно клонировать, создавая новое репо и применяя все пакеты? –

+0

Принимая этот ответ, поскольку исторические связки могут быть удалены, так что доступны только самые последние пакеты. – eskhool

2

clone это просто init следует pull, так что вы не можете остановить клонирование без нарушения также тянуть.

+0

Спасибо, это кажется правдой ... однако ответ ниже ближе к обходному пути – eskhool

+0

Определенно. Вы должны отредактировать свой вопрос, чтобы он был достаточно широким, чтобы включить его в качестве реальных ответов. Поскольку записанные файлы .bundle больше не являются размещенным репозиторием «hgweb.wsgi». –

+0

Обновление вопроса, чтобы разрешить обходной путь явно, хотя любые обходные пути всегда приветствуются. Если бы вы уже поддержали свой ответ, как способ дать кредит, но со своим экспертным счетом я сомневаюсь, что к вам сейчас относится :) cheers – eskhool