Создание новых репозиториев с использованием меркуриального сервера

В соответствии с "Создание репозиториев" на http://dev.lshift.net/paul/mercurial-server/docbook.html все, что нам нужно сделать для создания нового репозитория, - это clone не существует один.

Но в 1.1 я не работаю. И если мы посмотрим на код:

if cmd is None:
    fail("direct logins on the hg account prohibited")
elif cmd.startswith('hg -R ') and cmd.endswith(' serve --stdio'):
    repo = getrepo("read", cmd[6:-14])
    if not os.path.isdir(repo + "/.hg"):
        fail("no such repository %s" % repo)
    dispatch.dispatch(['-R', repo, 'serve', '--stdio'])
elif cmd.startswith('hg init '):
    repo = getrepo("init", cmd[8:])
    if os.path.exists(repo):
        fail("%s exists" % repo)
    d = os.path.dirname(repo)
    if d != "" and not os.path.isdir(d):
        os.makedirs(d)
    dispatch.dispatch(['init', repo])
else:
    fail("illegal command %r" % cmd)

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

Эта команда работает как ожидалось:

"TortoisePlink.exe" -ssh -2 [email protected] "hg init tst"

но я надеюсь, что это более элегантная команда для этого.

Ну, это "ошибка" в документации или я что-то не так?

UPDATE

Мой вопрос касается только создания репозиториев удаленно с помощью mercurial-server.

ОБНОВЛЕНИЕ 2:

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

Ответы

Ответ 1

Мне очень легко создать новое репо с использованием Mercurial-сервера. Предполагая, что у вас есть права и что путь "/dir1/dir2/" уже существует на сервере, просто (используя командную строку):

mkdir new
cd new
hg init
hg clone . ssh://[email protected]/dir1/dir2/new

Cheers,
Кристоф.

Ответ 2

Страница, на которую вы ссылаетесь, предназначена для обмена существующими репозиториями, а не специально для создания новых, пустых. Команда, которую вы даете hg init tst, верна для инициализации нового пустого хранилища. Я думаю, что единственная "неэлегантная" вещь заключается в том, что вы делаете это дистанционно и, следовательно, необходимо предоставить дополнительные команды ssh. Сама команда создания репозитория hg init довольно проста.