Создание новых репозиториев с использованием mercurial-сервера - PullRequest
13 голосов
/ 04 мая 2011

Согласно «Создание репозиториев» на 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 hg@mercurial "hg init tst"

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

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

UPDATE

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

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

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

Ответы [ 2 ]

15 голосов
/ 05 мая 2011

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

mkdir new
cd new
hg init
hg clone . ssh://hg@server/dir1/dir2/new

Cheers,
Christophe.

1 голос
/ 04 мая 2011

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

...