Создание новых репозиториев с использованием меркуриального сервера
В соответствии с "Создание репозиториев" на 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
довольно проста.