К сожалению, вы не понимаете, что делает username
в разделе [ui]
. Это строго клиентская настройка, которая говорит: «Если сервер запрашивает у меня имя пользователя для аутентификации, вот что я хочу отправить», так что то, что вы имеете в ui.username
в репозиториях A, X и Y, не повлияет на что могут делать удаленные пользователи с этими репозиториями.
Вместо этого вам необходимо использовать разделы [acl.allow]
и [acl.deny]
в файлах .hg/hgrc
репозиториев Y и X, чтобы указать для них элементы управления доступом.
Имена пользователей, которые вы используете в этих разделах ('clone1' и 'clone2') в ваших примерах, также должны быть подкреплены реальной системой аутентификации. Встроенный hg-serve
не предоставляет такой возможности, поэтому вам нужно использовать ssh или Apache / ISS с hgweb или hgwebdir. См. Вики-страницу для публикации репозиториев , где представлен отличный обзор.